DonorsChoose

DonorsChoose.org receives hundreds of thousands of project proposals each year for classroom projects in need of funding. Right now, a large number of volunteers is needed to manually screen each submission before it's approved to be posted on the DonorsChoose.org website.

Next year, DonorsChoose.org expects to receive close to 500,000 project proposals. As a result, there are three main problems they need to solve:

  • How to scale current manual processes and resources to screen 500,000 projects so that they can be posted as quickly and as efficiently as possible
  • How to increase the consistency of project vetting across different volunteers to improve the experience for teachers
  • How to focus volunteer time on the applications that need the most assistance

The goal of the competition is to predict whether or not a DonorsChoose.org project proposal submitted by a teacher will be approved, using the text of project descriptions as well as additional metadata about the project, teacher, and school. DonorsChoose.org can then use this information to identify projects most likely to need further review before approval.

About the DonorsChoose Data Set

The train.csv data set provided by DonorsChoose contains the following features:

Feature Description
project_id A unique identifier for the proposed project. Example: p036502
project_title Title of the project. Examples:
  • Art Will Make You Happy!
  • First Grade Fun
project_grade_category Grade level of students for which the project is targeted. One of the following enumerated values:
  • Grades PreK-2
  • Grades 3-5
  • Grades 6-8
  • Grades 9-12
project_subject_categories One or more (comma-separated) subject categories for the project from the following enumerated list of values:
  • Applied Learning
  • Care & Hunger
  • Health & Sports
  • History & Civics
  • Literacy & Language
  • Math & Science
  • Music & The Arts
  • Special Needs
  • Warmth

Examples:
  • Music & The Arts
  • Literacy & Language, Math & Science
school_state State where school is located (Two-letter U.S. postal code). Example: WY
project_subject_subcategories One or more (comma-separated) subject subcategories for the project. Examples:
  • Literacy
  • Literature & Writing, Social Sciences
project_resource_summary An explanation of the resources needed for the project. Example:
  • My students need hands on literacy materials to manage sensory needs!
project_essay_1 First application essay*
project_essay_2 Second application essay*
project_essay_3 Third application essay*
project_essay_4 Fourth application essay*
project_submitted_datetime Datetime when project application was submitted. Example: 2016-04-28 12:43:56.245
teacher_id A unique identifier for the teacher of the proposed project. Example: bdf8baa8fedef6bfeec7ae4ff1c15c56
teacher_prefix Teacher's title. One of the following enumerated values:
  • nan
  • Dr.
  • Mr.
  • Mrs.
  • Ms.
  • Teacher.
teacher_number_of_previously_posted_projects Number of project applications previously submitted by the same teacher. Example: 2

* See the section Notes on the Essay Data for more details about these features.

Additionally, the resources.csv data set provides more data about the resources required for each project. Each line in this file represents a resource required by a project:

Feature Description
id A project_id value from the train.csv file. Example: p036502
description Desciption of the resource. Example: Tenor Saxophone Reeds, Box of 25
quantity Quantity of the resource required. Example: 3
price Price of the resource required. Example: 9.95

Note: Many projects require multiple resources. The id value corresponds to a project_id in train.csv, so you use it as a key to retrieve all resources needed for a project:

The data set contains the following label (the value you will attempt to predict):

Label Description
project_is_approved A binary flag indicating whether DonorsChoose approved the project. A value of 0 indicates the project was not approved, and a value of 1 indicates the project was approved.

Notes on the Essay Data

    Prior to May 17, 2016, the prompts for the essays were as follows:
  • __project_essay_1:__ "Introduce us to your classroom"
  • __project_essay_2:__ "Tell us more about your students"
  • __project_essay_3:__ "Describe how your students will use the materials you're requesting"
  • __project_essay_3:__ "Close by sharing why your project will make a difference"
    Starting on May 17, 2016, the number of essays was reduced from 4 to 2, and the prompts for the first 2 essays were changed to the following:
  • __project_essay_1:__ "Describe your students: What makes your students special? Specific details about their background, your neighborhood, and your school are all helpful."
  • __project_essay_2:__ "About your project: How will these materials make a difference in your students' learning and improve their school lives?"

  • For all projects with project_submitted_datetime of 2016-05-17 and later, the values of project_essay_3 and project_essay_4 will be NaN.
In [2]:
%matplotlib inline
import warnings
warnings.filterwarnings("ignore")

import sqlite3
import pandas as pd
import numpy as np
import nltk
import string
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import confusion_matrix
from sklearn import metrics
from sklearn.metrics import roc_curve, auc
from nltk.stem.porter import PorterStemmer

import re
# Tutorial about Python regular expressions: https://pymotw.com/2/re/
import string
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.stem.wordnet import WordNetLemmatizer

from gensim.models import Word2Vec
from gensim.models import KeyedVectors
import pickle

from tqdm import tqdm
import os

from chart_studio.plotly import plotly
import plotly.offline as offline
import plotly.graph_objs as go
offline.init_notebook_mode()
from collections import Counter

1.1 Reading Data

In [3]:
project_data = pd.read_csv('train_data.csv')
resource_data = pd.read_csv('resources.csv')
In [4]:
print("Number of data points in train data", project_data.shape)
print('-'*50)
print("The attributes of data :", project_data.columns.values)
Number of data points in train data (109248, 17)
--------------------------------------------------
The attributes of data : ['Unnamed: 0' 'id' 'teacher_id' 'teacher_prefix' 'school_state'
 'project_submitted_datetime' 'project_grade_category'
 'project_subject_categories' 'project_subject_subcategories'
 'project_title' 'project_essay_1' 'project_essay_2' 'project_essay_3'
 'project_essay_4' 'project_resource_summary'
 'teacher_number_of_previously_posted_projects' 'project_is_approved']
In [5]:
print("Number of data points in train data", resource_data.shape)
print(resource_data.columns.values)
resource_data.head(2)
Number of data points in train data (1541272, 4)
['id' 'description' 'quantity' 'price']
Out[5]:
id description quantity price
0 p233245 LC652 - Lakeshore Double-Space Mobile Drying Rack 1 149.00
1 p069063 Bouncy Bands for Desks (Blue support pipes) 3 14.95
In [6]:
project_data=project_data.sample(n=50000)
project_data.shape
Out[6]:
(50000, 17)
In [7]:
project_data['project_is_approved'].value_counts()
Out[7]:
1    42430
0     7570
Name: project_is_approved, dtype: int64
In [8]:
# how to replace elements in list python: https://stackoverflow.com/a/2582163/4084039
cols = ['Date' if x=='project_submitted_datetime' else x for x in list(project_data.columns)]


#sort dataframe based on time pandas python: https://stackoverflow.com/a/49702492/4084039
project_data['Date'] = pd.to_datetime(project_data['project_submitted_datetime'])
project_data.drop('project_submitted_datetime', axis=1, inplace=True)
project_data.sort_values(by=['Date'], inplace=True)


# how to reorder columns pandas python: https://stackoverflow.com/a/13148611/4084039
project_data = project_data[cols]


project_data.head(2)
Out[8]:
Unnamed: 0 id teacher_id teacher_prefix school_state Date project_grade_category project_subject_categories project_subject_subcategories project_title project_essay_1 project_essay_2 project_essay_3 project_essay_4 project_resource_summary teacher_number_of_previously_posted_projects project_is_approved
55660 8393 p205479 2bf07ba08945e5d8b2a3f269b2b3cfe5 Mrs. CA 2016-04-27 00:27:36 Grades PreK-2 Math & Science Applied Sciences, Health & Life Science Engineering STEAM into the Primary Classroom I have been fortunate enough to use the Fairy ... My students come from a variety of backgrounds... Each month I try to do several science or STEM... It is challenging to develop high quality scie... My students need STEM kits to learn critical s... 53 1
473 100660 p234804 cbc0e38f522143b86d372f8b43d4cff3 Mrs. GA 2016-04-27 00:53:00 Grades PreK-2 Applied Learning Early Development Flexible Seating for Flexible Learning I recently read an article about giving studen... I teach at a low-income (Title 1) school. Ever... We need a classroom rug that we can use as a c... Benjamin Franklin once said, \"Tell me and I f... My students need flexible seating in the class... 2 1

1.2 preprocessing of project_subject_categories

In [9]:
print(project_data['project_subject_categories'].head(5))
55660                         Math & Science
473                         Applied Learning
41558                    Literacy & Language
29891       Math & Science, History & Civics
81565    Literacy & Language, Math & Science
Name: project_subject_categories, dtype: object
In [10]:
catogories = list(project_data['project_subject_categories'].values)
# remove special characters from list of strings python: https://stackoverflow.com/a/47301924/4084039

# https://www.geeksforgeeks.org/removing-stop-words-nltk-python/
# https://stackoverflow.com/questions/23669024/how-to-strip-a-specific-word-from-a-string
# https://stackoverflow.com/questions/8270092/remove-all-whitespace-in-a-string-in-python
cat_list = []
for i in catogories:
    temp = ""
    # consider we have text like this "Math & Science, Warmth, Care & Hunger"
    for j in i.split(','): # it will split it in three parts ["Math & Science", "Warmth", "Care & Hunger"]
        if 'The' in j.split(): # this will split each of the catogory based on space "Math & Science"=> "Math","&", "Science"
            j=j.replace('The','') # if we have the words "The" we are going to replace it with ''(i.e removing 'The')
        j = j.replace(' ','') # we are placeing all the ' '(space) with ''(empty) ex:"Math & Science"=>"Math&Science"
        temp+=j.strip()+" " #" abc ".strip() will return "abc", remove the trailing spaces
        temp = temp.replace('&','_') # we are replacing the & value into 
    cat_list.append(temp.strip())
    
project_data['clean_categories'] = cat_list
project_data.drop(['project_subject_categories'], axis=1, inplace=True)

from collections import Counter
my_counter = Counter()
for word in project_data['clean_categories'].values:
    my_counter.update(word.split())

cat_dict = dict(my_counter)
sorted_cat_dict = dict(sorted(cat_dict.items(), key=lambda kv: kv[1]))
In [11]:
print(project_data['clean_categories'].head(5))
55660                      Math_Science
473                     AppliedLearning
41558                 Literacy_Language
29891       Math_Science History_Civics
81565    Literacy_Language Math_Science
Name: clean_categories, dtype: object

1.3 preprocessing of project_subject_subcategories

In [12]:
print(project_data['project_subject_subcategories'].head(5))
55660    Applied Sciences, Health & Life Science
473                            Early Development
41558                                   Literacy
29891               Mathematics, Social Sciences
81565                      Literacy, Mathematics
Name: project_subject_subcategories, dtype: object
In [13]:
sub_catogories = list(project_data['project_subject_subcategories'].values)
# remove special characters from list of strings python: https://stackoverflow.com/a/47301924/4084039

# https://www.geeksforgeeks.org/removing-stop-words-nltk-python/
# https://stackoverflow.com/questions/23669024/how-to-strip-a-specific-word-from-a-string
# https://stackoverflow.com/questions/8270092/remove-all-whitespace-in-a-string-in-python

sub_cat_list = []
for i in sub_catogories:
    temp = ""
    # consider we have text like this "Math & Science, Warmth, Care & Hunger"
    for j in i.split(','): # it will split it in three parts ["Math & Science", "Warmth", "Care & Hunger"]
        if 'The' in j.split(): # this will split each of the catogory based on space "Math & Science"=> "Math","&", "Science"
            j=j.replace('The','') # if we have the words "The" we are going to replace it with ''(i.e removing 'The')
        j = j.replace(' ','') # we are placeing all the ' '(space) with ''(empty) ex:"Math & Science"=>"Math&Science"
        temp +=j.strip()+" "#" abc ".strip() will return "abc", remove the trailing spaces
        temp = temp.replace('&','_')
    sub_cat_list.append(temp.strip())

project_data['clean_subcategories'] = sub_cat_list
project_data.drop(['project_subject_subcategories'], axis=1, inplace=True)

# count of all the words in corpus python: https://stackoverflow.com/a/22898595/4084039
my_counter = Counter()
for word in project_data['clean_subcategories'].values:
    my_counter.update(word.split())
    
sub_cat_dict = dict(my_counter)
sorted_sub_cat_dict = dict(sorted(sub_cat_dict.items(), key=lambda kv: kv[1]))
In [14]:
print(project_data['clean_subcategories'].head(5))
55660    AppliedSciences Health_LifeScience
473                        EarlyDevelopment
41558                              Literacy
29891            Mathematics SocialSciences
81565                  Literacy Mathematics
Name: clean_subcategories, dtype: object

1.4 preprocessing of school_state

In [15]:
my_counter = Counter()
for word in project_data['school_state'].values:
    my_counter.update(word.split())
    
state_dict = dict(my_counter)
sorted_state_dict = dict(sorted(state_dict.items(), key=lambda kv: kv[1]))
In [16]:
print(project_data['school_state'].head(5))
55660    CA
473      GA
41558    WA
29891    CA
81565    CA
Name: school_state, dtype: object

1.5 preprocessing of project_grade_category

In [17]:
project_data['project_grade_category'].value_counts()
Out[17]:
Grades PreK-2    20273
Grades 3-5       17035
Grades 6-8        7658
Grades 9-12       5034
Name: project_grade_category, dtype: int64
In [18]:
#https://stackoverflow.com/questions/36383821/pandas-dataframe-apply-function-to-column-strings-based-on-other-column-value
project_data['project_grade_category'] = project_data['project_grade_category'].str.replace(' ','_')
project_data['project_grade_category'] = project_data['project_grade_category'].str.replace('-','_')
project_data['project_grade_category'] = project_data['project_grade_category'].str.lower()
project_data['project_grade_category'].value_counts()
Out[18]:
grades_prek_2    20273
grades_3_5       17035
grades_6_8        7658
grades_9_12       5034
Name: project_grade_category, dtype: int64
In [19]:
my_counter = Counter()
for word in project_data['project_grade_category'].values:
    my_counter.update(word.split())

grade_dict = dict(my_counter)
sorted_grade_dict = dict(sorted(grade_dict.items(), key=lambda kv: kv[1]))
In [20]:
print(sorted_grade_dict)
{'grades_9_12': 5034, 'grades_6_8': 7658, 'grades_3_5': 17035, 'grades_prek_2': 20273}

1.6 preprocessing of teacher_prefix

In [21]:
project_data['teacher_prefix'].value_counts()
Out[21]:
Mrs.       26221
Ms.        17811
Mr.         4878
Teacher     1082
Dr.            5
Name: teacher_prefix, dtype: int64
In [22]:
project_data['teacher_prefix']=project_data['teacher_prefix'].fillna('Mrs.')
project_data['teacher_prefix'] = project_data['teacher_prefix'].str.replace('-','_')
project_data['teacher_prefix'] = project_data['teacher_prefix'].str.replace('.',' ')
project_data['teacher_prefix'] = project_data['teacher_prefix'].str.lower()
project_data['teacher_prefix'].value_counts()
Out[22]:
mrs        26224
ms         17811
mr          4878
teacher     1082
dr             5
Name: teacher_prefix, dtype: int64
In [23]:
my_counter = Counter()
for word in project_data['teacher_prefix'].values:
    my_counter.update(word.split())

teacher_dict = dict(my_counter)
sorted_teacher_dict = dict(sorted(teacher_dict.items(), key=lambda kv: kv[1]))
In [24]:
print(project_data['teacher_prefix'].head(5))
55660    mrs 
473      mrs 
41558    mrs 
29891    mrs 
81565    mrs 
Name: teacher_prefix, dtype: object

1.7 Text preprocessing

In [25]:
# merge two column text dataframe: 
project_data["essay"] = project_data["project_essay_1"].map(str) +\
                        project_data["project_essay_2"].map(str) + \
                        project_data["project_essay_3"].map(str) + \
                        project_data["project_essay_4"].map(str)
In [26]:
project_data.head(2)
Out[26]:
Unnamed: 0 id teacher_id teacher_prefix school_state Date project_grade_category project_title project_essay_1 project_essay_2 project_essay_3 project_essay_4 project_resource_summary teacher_number_of_previously_posted_projects project_is_approved clean_categories clean_subcategories essay
55660 8393 p205479 2bf07ba08945e5d8b2a3f269b2b3cfe5 mrs CA 2016-04-27 00:27:36 grades_prek_2 Engineering STEAM into the Primary Classroom I have been fortunate enough to use the Fairy ... My students come from a variety of backgrounds... Each month I try to do several science or STEM... It is challenging to develop high quality scie... My students need STEM kits to learn critical s... 53 1 Math_Science AppliedSciences Health_LifeScience I have been fortunate enough to use the Fairy ...
473 100660 p234804 cbc0e38f522143b86d372f8b43d4cff3 mrs GA 2016-04-27 00:53:00 grades_prek_2 Flexible Seating for Flexible Learning I recently read an article about giving studen... I teach at a low-income (Title 1) school. Ever... We need a classroom rug that we can use as a c... Benjamin Franklin once said, \"Tell me and I f... My students need flexible seating in the class... 2 1 AppliedLearning EarlyDevelopment I recently read an article about giving studen...
In [27]:
#### 1.4.2.3 Using Pretrained Models: TFIDF weighted W2V
In [28]:
# printing some random reviews
print(project_data['essay'].values[0])
print("="*50)
print(project_data['essay'].values[150])
print("="*50)
print(project_data['essay'].values[1000])
print("="*50)
print(project_data['essay'].values[20000])
print("="*50)
print(project_data['essay'].values[49999])
print("="*50)
I have been fortunate enough to use the Fairy Tale STEM kits in my classroom as well as the STEM journals, which my students really enjoyed.  I would love to implement more of the Lakeshore STEM kits in my classroom for the next school year as they provide excellent and engaging STEM lessons.My students come from a variety of backgrounds, including language and socioeconomic status.  Many of them don't have a lot of experience in science and engineering and these kits give me the materials to provide these exciting opportunities for my students.Each month I try to do several science or STEM/STEAM projects.  I would use the kits and robot to help guide my science instruction in engaging and meaningful ways.  I can adapt the kits to my current language arts pacing guide where we already teach some of the material in the kits like tall tales (Paul Bunyan) or Johnny Appleseed.  The following units will be taught in the next school year where I will implement these kits: magnets, motion, sink vs. float, robots.  I often get to these units and don't know If I am teaching the right way or using the right materials.    The kits will give me additional ideas, strategies, and lessons to prepare my students in science.It is challenging to develop high quality science activities.  These kits give me the materials I need to provide my students with science activities that will go along with the curriculum in my classroom.  Although I have some things (like magnets) in my classroom, I don't know how to use them effectively.  The kits will provide me with the right amount of materials and show me how to use them in an appropriate way.
==================================================
“The earth has music for those who listen.” –Shakespeare\r\n\r\nMy students love going to the listening center, however, it is not functional for them.  A space-saver listening table would allow for the appropriate space for the students, as well as for storage (of headphones and materials).Many of our school's Kindergarten students come from low-income, non-English speaking homes. 91% of the Kindergarten students are high-needs students and 68% are economically disadvantaged, and over 50% of the students at our school are English Language Learners (ELLs).  All of our teachers are certified teachers and have SEI endorsement, enabling us all to teach ELLs.  75% of my students go to afterschool programs, arriving home after 5 P.M. When they go home, they eat and go to bed. They do not have the opportunity to discuss their day with their families, practicing speaking and listening (be it in their native language or English).  \r\n\r\nThe students love coming to school.  They put every effort into their day, learning as much as they can.  They are always willing to help their peers and support them.  These students deserve every opportunity we can give them!A listening center table would allow my students to familiarize themselves with reading, phonics, and more without having an adult read to them.  It also gives the students a sense of individualism, pride, and responsibility.  Students would be able to listen to activities on CDs and follow along using Lakeshore Learning Listen and Learn Letter Sounds Activity Program and Lakeshore Learning Listen and Learn Phonemic Activity Program. Both programs include write and wipe activity pads.  They would also have the opportunity to listen to story reading, following along with the coordinating book.  Students will access this center on a daily basis during ELA Daily 5 Center Rotations.Scholastic tells us, \"Narrators on CD tend to embellish their storytelling with silly voices and dramatic enhancements. They emphasize reading as a source of pleasure rather than a skill, and make children eager to learn how to read. Beyond their sheer enjoyment of audio books, children also develop a sense of narrative structure and understanding of language. Stories on CD help them to grasp the rich and various ways in which language distills and conveys meaning.\"
==================================================
My current class has made a lot of gains this year in their reading abilities. They are able to work cooperatively in groups, self-select working areas that meet their needs, and build stamina in their reading (read for longer periods of time). Alternative seating will help them to make new gains.My students come from low income households. We are a title one school with free breakfast and lunch.\r\nMany of these students do not have access to books or Internet or anything else to help them with their homework. What they learn at school is all the learning that they get in a week. In order to maximize our learning, I would like to invest in an alternative seating classroom. This will provide my students with alternatives to traditional desk seating all day long. They will have the option to stand at a desk, use a stability ball, use a pillow on the carpet, or even to still sit at a traditional desk and chair. These accommodations will provide active students with the opportunity to move while still learning. It will also help students who learn better when they are in different positions.Students will be able to find comfortable areas to work in instead of always sitting in uncomfortable hard chairs. This idea is based off of the \"Starbucks Lounge\" model. Think of a Starbucks lounge. Does it have hard chairs and tables or is it an inviting area for people to work in, collaborate in, and engage others in? Students in the classroom work the same way. They need an engaging and inviting environment to get them to their best learning state.Donations to this project will help students to learn more about themselves and their learning needs. It will help them to become more aware of what they need in order to help them learn. This will in turn lead to more responsibility in students' personal growth.
==================================================
Our students are very energetic and love to explore learning through play. Our school is a Title I school where all of our students receive free breakfast and lunch everyday. I teach in a co-taught classroom where 50 bubbly Kindergarten students come to school excited to learn everyday!  \r\n\r\nAs a part of our daily routine, we love to do activities that keep our students moving!  We are always looking for new ways to keep healthy and get our wiggles out! \r\n\r\nDuring our school year our students only participate in physical education for 8 weeks. With such a short amount of time, it is important that we keep our students active throughout the whole school year. Last school year we made many healthy snacks in our classroom to show our students that eating healthy can be fun and tasty too!Through many of our school initiates our students are exposed to many different healthy food options.  With all of the healthy choices available to my students they decided it would be fun to incorporate healthy eating into our classroom.  Last year we made spinach fruit smoothies in our classroom and the kids were amazed that they loved spinach! It was amazing to see that when students become part of the cooking process how excited they are to try née healthy food! \r\nOur students couldn't wait until we cooked in the classroom again! There are many healthy snacks and meals that our students have requested to make, but we don't have the equipment to do so.  If we receive these materials we would be able to grant our students wishes of cooking healthy food in the classroom and also ensure that our students are eating more nutrient dense foods throughout the day!nannan
==================================================
We are a Title 1 school  650 total students. Our Elementary school students are from third to fifth grade and are just now beginning formal training in technology and computing.\r\n\r\nMany of theses children come from rural and farm backgrounds and have seen agriculture in action all of their lives, but few connect agriculture with sustainability. \r\n\r\nIn our Elementary School, our students have access to a single computer and technology laboratory. All 650+ students rotate through the lab to learn science, mathematics, computer programming, web design, reading, and computer processing using computers.\r\n\r\nOur students rely on computing and technology, but only currently have access to Chromebooks due to state budget issues. Students would greatly benefit from more current computers that they could use to access programs and activities, such as: Google Earth, geographic information systems software, and software that could be used to teach the relationship between agriculture and sustainability.\r\nThese computers will populate the computer lab which currently has no computers at all.  The old systems were over 11 years old and had to be removed because of network safety issues and they could no longer be updated or repaired.  \r\nWe would like to teach these children about taking responsibility for our environment early in life.  There are several very effective ways to do that.  Three of which are computer video games: Blockhood is a game where the students are building their homes in a responsible way.  It teaches that you must take into account resources such as water, land and energy.  Also Cityrain teaches about building sustainable cities. Lastly stopdisasters.org teaches about planning and anticipated potential disasters and building accordingly.nannan
==================================================
In [29]:
# https://stackoverflow.com/a/47091490/4084039
import re

def decontracted(phrase):
    # specific
    phrase = re.sub(r"won't", "will not", phrase)
    phrase = re.sub(r"can\'t", "can not", phrase)

    # general
    phrase = re.sub(r"n\'t", " not", phrase)
    phrase = re.sub(r"\'re", " are", phrase)
    phrase = re.sub(r"\'s", " is", phrase)
    phrase = re.sub(r"\'d", " would", phrase)
    phrase = re.sub(r"\'ll", " will", phrase)
    phrase = re.sub(r"\'t", " not", phrase)
    phrase = re.sub(r"\'ve", " have", phrase)
    phrase = re.sub(r"\'m", " am", phrase)
    return phrase
In [30]:
sent = decontracted(project_data['essay'].values[20000])
print(sent)
print("="*50)
Our students are very energetic and love to explore learning through play. Our school is a Title I school where all of our students receive free breakfast and lunch everyday. I teach in a co-taught classroom where 50 bubbly Kindergarten students come to school excited to learn everyday!  \r\n\r\nAs a part of our daily routine, we love to do activities that keep our students moving!  We are always looking for new ways to keep healthy and get our wiggles out! \r\n\r\nDuring our school year our students only participate in physical education for 8 weeks. With such a short amount of time, it is important that we keep our students active throughout the whole school year. Last school year we made many healthy snacks in our classroom to show our students that eating healthy can be fun and tasty too!Through many of our school initiates our students are exposed to many different healthy food options.  With all of the healthy choices available to my students they decided it would be fun to incorporate healthy eating into our classroom.  Last year we made spinach fruit smoothies in our classroom and the kids were amazed that they loved spinach! It was amazing to see that when students become part of the cooking process how excited they are to try née healthy food! \r\nOur students could not wait until we cooked in the classroom again! There are many healthy snacks and meals that our students have requested to make, but we do not have the equipment to do so.  If we receive these materials we would be able to grant our students wishes of cooking healthy food in the classroom and also ensure that our students are eating more nutrient dense foods throughout the day!nannan
==================================================
In [31]:
# \r \n \t remove from string python: http://texthandler.com/info/remove-line-breaks-python/
sent = sent.replace('\\r', ' ')
sent = sent.replace('\\"', ' ')
sent = sent.replace('\\n', ' ')
print(sent)
Our students are very energetic and love to explore learning through play. Our school is a Title I school where all of our students receive free breakfast and lunch everyday. I teach in a co-taught classroom where 50 bubbly Kindergarten students come to school excited to learn everyday!      As a part of our daily routine, we love to do activities that keep our students moving!  We are always looking for new ways to keep healthy and get our wiggles out!     During our school year our students only participate in physical education for 8 weeks. With such a short amount of time, it is important that we keep our students active throughout the whole school year. Last school year we made many healthy snacks in our classroom to show our students that eating healthy can be fun and tasty too!Through many of our school initiates our students are exposed to many different healthy food options.  With all of the healthy choices available to my students they decided it would be fun to incorporate healthy eating into our classroom.  Last year we made spinach fruit smoothies in our classroom and the kids were amazed that they loved spinach! It was amazing to see that when students become part of the cooking process how excited they are to try née healthy food!   Our students could not wait until we cooked in the classroom again! There are many healthy snacks and meals that our students have requested to make, but we do not have the equipment to do so.  If we receive these materials we would be able to grant our students wishes of cooking healthy food in the classroom and also ensure that our students are eating more nutrient dense foods throughout the day!nannan
In [32]:
#remove spacial character: https://stackoverflow.com/a/5843547/4084039
sent = re.sub('[^A-Za-z0-9]+', ' ', sent)
print(sent)
Our students are very energetic and love to explore learning through play Our school is a Title I school where all of our students receive free breakfast and lunch everyday I teach in a co taught classroom where 50 bubbly Kindergarten students come to school excited to learn everyday As a part of our daily routine we love to do activities that keep our students moving We are always looking for new ways to keep healthy and get our wiggles out During our school year our students only participate in physical education for 8 weeks With such a short amount of time it is important that we keep our students active throughout the whole school year Last school year we made many healthy snacks in our classroom to show our students that eating healthy can be fun and tasty too Through many of our school initiates our students are exposed to many different healthy food options With all of the healthy choices available to my students they decided it would be fun to incorporate healthy eating into our classroom Last year we made spinach fruit smoothies in our classroom and the kids were amazed that they loved spinach It was amazing to see that when students become part of the cooking process how excited they are to try n e healthy food Our students could not wait until we cooked in the classroom again There are many healthy snacks and meals that our students have requested to make but we do not have the equipment to do so If we receive these materials we would be able to grant our students wishes of cooking healthy food in the classroom and also ensure that our students are eating more nutrient dense foods throughout the day nannan
In [33]:
# https://gist.github.com/sebleier/554280
# we are removing the words from the stop words list: 'no', 'nor', 'not'
stopwords= ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've",\
            "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', \
            'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their',\
            'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', \
            'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', \
            'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', \
            'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after',\
            'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further',\
            'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',\
            'most', 'other', 'some', 'such', 'only', 'own', 'same', 'so', 'than', 'too', 'very', \
            's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', \
            've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn',\
            "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn',\
            "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", \
            'won', "won't", 'wouldn', "wouldn't"]
In [34]:
# Combining all the above stundents 
from tqdm import tqdm
preprocessed_essays = []
# tqdm is for printing the status bar
for sentance in tqdm(project_data['essay'].values):
    sent = decontracted(sentance)
    sent = sent.replace('\\r', ' ')
    sent = sent.replace('\\"', ' ')
    sent = sent.replace('\\n', ' ')
    sent = re.sub('[^A-Za-z0-9]+', ' ', sent)
    # https://gist.github.com/sebleier/554280
    sent = ' '.join(e for e in sent.split() if e not in stopwords)
    preprocessed_essays.append(sent.lower().strip())
100%|███████████████████████████████████████████████████████████████████████████| 50000/50000 [01:04<00:00, 773.50it/s]
In [35]:
# after preprocesing
preprocessed_essays[20000]
Out[35]:
'our students energetic love explore learning play our school title i school students receive free breakfast lunch everyday i teach co taught classroom 50 bubbly kindergarten students come school excited learn everyday as part daily routine love activities keep students moving we always looking new ways keep healthy get wiggles during school year students participate physical education 8 weeks with short amount time important keep students active throughout whole school year last school year made many healthy snacks classroom show students eating healthy fun tasty through many school initiates students exposed many different healthy food options with healthy choices available students decided would fun incorporate healthy eating classroom last year made spinach fruit smoothies classroom kids amazed loved spinach it amazing see students become part cooking process excited try n e healthy food our students could not wait cooked classroom there many healthy snacks meals students requested make not equipment if receive materials would able grant students wishes cooking healthy food classroom also ensure students eating nutrient dense foods throughout day nannan'

1.8 Preprocessing of `project_title`

In [36]:
# similarly you can preprocess the titles also
preprocessed_titles = []
# tqdm is for printing the status bar
for sentence in tqdm(project_data['project_title'].values):
    sent = decontracted(sentence)
    sent = sent.replace('\\r', ' ')
    sent = sent.replace('\\"', ' ')
    sent = sent.replace('\\n', ' ')
    sent = re.sub('[^A-Za-z0-9]+', ' ', sent)
    # https://gist.github.com/sebleier/554280
    sent = ' '.join(e for e in sent.split() if e not in stopwords)
    preprocessed_titles.append(sent.lower().strip())
100%|█████████████████████████████████████████████████████████████████████████| 50000/50000 [00:02<00:00, 17535.92it/s]
In [37]:
print(45660,preprocessed_titles[45660])
45660 class makerspace a safari mind
In [38]:
project_data['project_title']=preprocessed_titles
In [39]:
print(45660,project_data['project_title'].iloc[45660])
45660 class makerspace a safari mind

Sentiment Analysis of essays

In [40]:
import nltk
nltk.downloader.download('vader_lexicon')
from nltk.sentiment.vader import SentimentIntensityAnalyzer
analyser = SentimentIntensityAnalyzer()

neg = []
pos = []
neu = []
compound = []

for a in tqdm(project_data["essay"]) :
    b = analyser.polarity_scores(a)['neg']
    c = analyser.polarity_scores(a)['pos']
    d = analyser.polarity_scores(a)['neu']
    e = analyser.polarity_scores(a)['compound']
    neg.append(b)
    pos.append(c)
    neu.append(d)
    compound.append(e)
[nltk_data] Downloading package vader_lexicon to C:\Users\ABHISHEK
[nltk_data]     SINGH\AppData\Roaming\nltk_data...
[nltk_data]   Package vader_lexicon is already up-to-date!
100%|████████████████████████████████████████████████████████████████████████████| 50000/50000 [21:33<00:00, 38.65it/s]
In [41]:
project_data["pos"] = pos
In [42]:
project_data["neg"] = neg
In [43]:
project_data["neu"] = neu
In [44]:
project_data["compound"] = compound

Number of Words in Title

In [45]:
title_word_count = []

for a in project_data["project_title"] :
    b = len(a.split())
    title_word_count.append(b)

project_data["title_word_count"] = title_word_count
In [46]:
print(title_word_count)
[4, 4, 6, 4, 7, 4, 5, 5, 3, 4, 6, 6, 5, 5, 5, 4, 2, 5, 6, 4, 4, 2, 4, 2, 3, 3, 2, 5, 4, 2, 3, 3, 5, 3, 5, 2, 3, 4, 3, 8, 3, 5, 1, 2, 4, 7, 5, 5, 4, 5, 6, 5, 2, 2, 5, 2, 2, 5, 4, 4, 8, 3, 3, 3, 4, 3, 6, 3, 3, 5, 3, 2, 7, 5, 6, 4, 4, 6, 5, 3, 10, 8, 4, 4, 5, 4, 3, 3, 3, 2, 6, 2, 3, 5, 4, 6, 5, 7, 4, 4, 3, 4, 2, 3, 4, 3, 6, 6, 4, 3, 5, 5, 6, 7, 5, 8, 6, 9, 3, 4, 4, 4, 5, 4, 6, 3, 7, 2, 6, 4, 2, 3, 3, 3, 2, 2, 3, 4, 2, 3, 7, 4, 4, 2, 5, 4, 4, 4, 4, 10, 6, 3, 2, 3, 4, 3, 6, 2, 3, 6, 2, 8, 4, 2, 5, 8, 3, 5, 10, 2, 7, 3, 3, 2, 5, 3, 3, 2, 4, 5, 4, 5, 5, 2, 4, 3, 5, 5, 4, 5, 6, 5, 4, 9, 4, 5, 2, 2, 2, 4, 6, 3, 8, 4, 4, 2, 3, 4, 4, 3, 6, 5, 4, 3, 3, 4, 2, 7, 4, 3, 4, 2, 10, 2, 9, 7, 6, 4, 5, 6, 7, 3, 8, 5, 2, 6, 6, 3, 4, 3, 10, 2, 3, 4, 3, 4, 4, 7, 4, 6, 4, 6, 6, 4, 3, 10, 3, 5, 2, 2, 8, 8, 4, 2, 3, 3, 3, 3, 2, 5, 3, 5, 4, 6, 3, 4, 3, 5, 1, 8, 5, 3, 2, 3, 4, 4, 3, 4, 6, 8, 3, 4, 3, 6, 5, 5, 4, 3, 2, 3, 4, 2, 3, 5, 4, 5, 5, 4, 3, 2, 2, 2, 2, 2, 3, 3, 6, 2, 5, 4, 3, 6, 6, 3, 4, 4, 3, 6, 7, 7, 2, 4, 5, 4, 3, 3, 3, 6, 6, 2, 3, 4, 6, 7, 5, 4, 3, 4, 6, 7, 2, 2, 4, 3, 4, 4, 3, 7, 2, 5, 3, 3, 7, 6, 4, 5, 4, 6, 5, 5, 2, 2, 3, 2, 4, 2, 2, 2, 6, 2, 8, 9, 5, 9, 3, 6, 2, 5, 5, 3, 4, 6, 3, 5, 2, 5, 3, 4, 5, 2, 2, 4, 2, 2, 7, 8, 4, 2, 6, 5, 7, 2, 6, 2, 2, 4, 6, 6, 3, 5, 5, 2, 5, 6, 4, 3, 4, 4, 6, 5, 7, 3, 8, 5, 4, 2, 5, 2, 4, 2, 8, 7, 3, 4, 4, 3, 7, 3, 1, 3, 4, 6, 2, 4, 6, 4, 5, 4, 8, 3, 4, 2, 3, 3, 4, 2, 6, 1, 8, 9, 5, 3, 3, 4, 3, 5, 4, 2, 4, 6, 5, 3, 4, 4, 4, 2, 2, 3, 4, 5, 2, 4, 6, 5, 3, 8, 5, 3, 2, 3, 4, 5, 4, 4, 4, 2, 4, 3, 2, 4, 3, 4, 5, 5, 6, 5, 6, 5, 6, 4, 9, 5, 5, 5, 5, 6, 6, 7, 4, 6, 6, 7, 5, 4, 4, 6, 2, 2, 6, 4, 7, 3, 4, 2, 7, 7, 4, 2, 7, 4, 5, 6, 8, 3, 3, 5, 7, 3, 4, 3, 3, 4, 5, 5, 3, 3, 3, 5, 2, 5, 3, 4, 2, 3, 7, 2, 3, 3, 8, 8, 3, 5, 3, 2, 5, 2, 3, 6, 7, 7, 5, 2, 3, 7, 3, 2, 7, 4, 2, 4, 4, 2, 3, 4, 2, 4, 4, 8, 5, 2, 3, 2, 3, 7, 5, 2, 2, 4, 4, 6, 5, 2, 2, 2, 5, 2, 6, 4, 2, 2, 2, 4, 2, 2, 7, 2, 2, 5, 2, 4, 3, 3, 4, 4, 3, 3, 4, 5, 4, 4, 3, 8, 2, 3, 4, 4, 2, 6, 2, 6, 3, 4, 3, 5, 5, 8, 4, 3, 6, 6, 3, 8, 6, 4, 4, 2, 6, 4, 7, 5, 3, 5, 2, 3, 4, 4, 6, 4, 3, 7, 5, 3, 2, 3, 6, 5, 9, 3, 5, 4, 1, 3, 2, 3, 5, 2, 4, 5, 4, 3, 5, 3, 2, 6, 3, 3, 4, 7, 4, 4, 3, 5, 3, 5, 4, 3, 5, 3, 4, 2, 3, 4, 6, 6, 3, 7, 7, 4, 4, 7, 4, 7, 9, 4, 5, 3, 3, 2, 5, 2, 10, 5, 4, 4, 3, 2, 2, 5, 3, 5, 2, 5, 4, 8, 6, 6, 5, 6, 6, 2, 4, 6, 2, 3, 9, 2, 2, 4, 4, 3, 6, 6, 6, 3, 4, 4, 9, 2, 2, 3, 2, 5, 3, 3, 4, 3, 4, 5, 4, 3, 3, 3, 3, 3, 2, 4, 6, 6, 2, 5, 4, 2, 7, 3, 4, 4, 9, 4, 7, 6, 6, 6, 7, 3, 6, 5, 2, 2, 6, 3, 5, 4, 2, 4, 6, 4, 4, 3, 2, 6, 3, 4, 6, 3, 1, 5, 2, 2, 4, 6, 3, 6, 6, 3, 5, 7, 8, 4, 5, 2, 3, 4, 3, 5, 2, 5, 6, 7, 2, 5, 5, 6, 3, 3, 6, 9, 8, 4, 6, 3, 2, 7, 3, 6, 3, 6, 7, 4, 6, 2, 2, 5, 3, 5, 1, 6, 5, 2, 6, 4, 4, 7, 5, 4, 7, 4, 4, 2, 6, 5, 2, 4, 7, 4, 5, 4, 3, 4, 5, 2, 7, 2, 3, 4, 3, 5, 5, 6, 2, 2, 3, 5, 5, 11, 5, 5, 3, 6, 5, 5, 5, 4, 4, 2, 4, 7, 2, 6, 2, 3, 3, 5, 4, 3, 6, 4, 3, 5, 4, 5, 4, 3, 2, 3, 5, 3, 5, 3, 2, 5, 6, 5, 4, 2, 8, 2, 6, 5, 3, 9, 5, 10, 7, 5, 4, 4, 8, 6, 2, 4, 4, 5, 4, 3, 5, 3, 5, 3, 3, 3, 3, 7, 2, 6, 6, 3, 4, 8, 4, 3, 2, 6, 4, 5, 8, 7, 4, 3, 8, 5, 2, 4, 2, 3, 4, 4, 4, 6, 5, 3, 3, 3, 3, 3, 5, 4, 4, 2, 6, 2, 4, 5, 4, 3, 2, 5, 2, 7, 4, 2, 2, 3, 6, 6, 2, 6, 3, 4, 2, 4, 2, 3, 5, 3, 4, 10, 5, 6, 3, 6, 2, 3, 2, 4, 4, 4, 3, 5, 6, 4, 6, 4, 7, 5, 2, 6, 5, 5, 3, 2, 2, 2, 4, 3, 3, 6, 4, 2, 8, 5, 3, 4, 3, 2, 3, 5, 2, 2, 3, 6, 4, 3, 6, 5, 6, 5, 5, 6, 4, 4, 3, 2, 3, 3, 4, 10, 3, 2, 3, 5, 2, 5, 2, 8, 2, 3, 3, 6, 4, 6, 3, 3, 2, 4, 2, 4, 5, 4, 4, 3, 8, 3, 2, 4, 5, 6, 6, 5, 4, 4, 7, 4, 6, 2, 3, 8, 2, 3, 2, 3, 7, 3, 2, 2, 4, 4, 4, 5, 3, 5, 2, 5, 4, 7, 4, 4, 4, 8, 5, 3, 2, 2, 8, 4, 2, 4, 5, 4, 6, 2, 3, 3, 7, 2, 5, 2, 4, 2, 3, 5, 4, 6, 5, 3, 4, 5, 6, 6, 5, 2, 3, 3, 3, 3, 2, 7, 5, 9, 4, 8, 6, 5, 4, 3, 4, 3, 5, 4, 4, 4, 7, 6, 5, 3, 3, 7, 5, 6, 6, 5, 7, 3, 6, 2, 3, 6, 5, 2, 7, 2, 8, 4, 2, 3, 3, 3, 3, 7, 3, 7, 3, 4, 7, 4, 4, 5, 3, 3, 3, 4, 3, 4, 7, 4, 8, 2, 5, 7, 4, 2, 3, 3, 2, 4, 2, 2, 2, 6, 5, 1, 6, 5, 5, 2, 5, 4, 6, 3, 4, 5, 3, 3, 3, 3, 7, 4, 6, 3, 3, 7, 3, 4, 6, 2, 4, 4, 6, 4, 6, 3, 6, 3, 6, 3, 6, 3, 3, 4, 4, 2, 4, 3, 3, 6, 7, 5, 2, 3, 2, 3, 2, 2, 7, 5, 3, 4, 2, 2, 8, 7, 1, 5, 4, 4, 6, 7, 5, 5, 4, 10, 4, 3, 3, 2, 3, 3, 3, 5, 3, 4, 5, 5, 3, 8, 2, 7, 7, 4, 3, 5, 4, 3, 4, 4, 2, 6, 5, 2, 5, 4, 3, 3, 3, 6, 4, 4, 3, 2, 2, 4, 2, 6, 6, 4, 3, 3, 3, 4, 5, 7, 4, 2, 4, 5, 5, 4, 6, 3, 4, 4, 3, 2, 3, 4, 6, 4, 10, 2, 2, 4, 4, 4, 2, 3, 3, 4, 5, 3, 6, 5, 3, 5, 3, 2, 5, 4, 3, 5, 4, 3, 2, 3, 3, 4, 2, 7, 6, 2, 3, 4, 3, 2, 4, 4, 6, 7, 5, 5, 7, 5, 5, 4, 3, 9, 3, 5, 4, 3, 4, 3, 5, 2, 3, 4, 2, 4, 3, 3, 3, 7, 5, 2, 3, 2, 3, 3, 4, 3, 3, 3, 4, 2, 7, 2, 2, 5, 4, 4, 5, 6, 4, 6, 3, 2, 6, 3, 2, 6, 3, 3, 5, 4, 4, 3, 5, 4, 5, 5, 8, 3, 3, 3, 2, 4, 7, 5, 2, 4, 5, 5, 3, 5, 4, 7, 5, 2, 4, 7, 6, 6, 3, 8, 3, 8, 2, 5, 3, 4, 6, 3, 6, 4, 7, 7, 4, 2, 5, 3, 4, 5, 3, 2, 3, 4, 3, 4, 5, 7, 4, 3, 5, 4, 3, 3, 4, 4, 5, 3, 3, 7, 6, 4, 3, 9, 4, 5, 5, 4, 5, 4, 4, 5, 4, 7, 1, 9, 4, 4, 5, 5, 3, 4, 3, 3, 7, 2, 5, 5, 4, 7, 3, 5, 5, 4, 5, 6, 5, 2, 3, 7, 2, 4, 3, 5, 4, 2, 3, 8, 9, 4, 3, 4, 3, 3, 2, 3, 3, 3, 5, 7, 8, 1, 7, 2, 3, 3, 5, 4, 2, 2, 6, 5, 2, 4, 4, 3, 3, 3, 5, 5, 2, 3, 6, 6, 2, 3, 6, 5, 5, 4, 5, 4, 2, 5, 4, 3, 2, 6, 3, 2, 3, 4, 4, 7, 6, 2, 7, 6, 7, 8, 5, 6, 3, 5, 2, 3, 5, 1, 4, 5, 2, 4, 5, 5, 4, 3, 4, 3, 5, 3, 3, 5, 4, 2, 3, 7, 5, 3, 5, 4, 4, 7, 4, 2, 5, 2, 3, 3, 5, 4, 3, 3, 5, 2, 4, 4, 2, 3, 3, 5, 6, 3, 5, 5, 7, 3, 5, 4, 4, 3, 3, 5, 7, 6, 5, 3, 3, 2, 2, 6, 5, 6, 5, 7, 4, 7, 3, 5, 4, 2, 3, 3, 7, 5, 5, 4, 7, 6, 5, 3, 5, 7, 7, 5, 4, 5, 8, 2, 5, 3, 2, 3, 4, 6, 5, 4, 3, 5, 4, 8, 2, 3, 2, 5, 7, 2, 4, 5, 4, 3, 1, 4, 4, 2, 3, 3, 7, 3, 3, 5, 4, 4, 4, 5, 3, 2, 2, 11, 4, 6, 2, 7, 8, 7, 5, 4, 4, 4, 5, 7, 6, 3, 2, 4, 4, 2, 3, 2, 8, 2, 4, 3, 7, 3, 2, 2, 2, 2, 3, 4, 3, 3, 3, 2, 4, 3, 5, 3, 3, 3, 2, 3, 4, 7, 7, 3, 9, 4, 9, 4, 2, 4, 3, 3, 5, 3, 3, 3, 5, 4, 3, 6, 2, 4, 2, 3, 4, 3, 4, 7, 3, 3, 4, 1, 4, 2, 3, 5, 9, 4, 4, 3, 2, 4, 5, 7, 5, 4, 5, 5, 2, 2, 3, 7, 5, 6, 3, 6, 4, 5, 4, 7, 6, 6, 3, 7, 3, 2, 5, 5, 3, 3, 3, 3, 7, 5, 2, 7, 4, 8, 3, 2, 5, 3, 3, 2, 5, 2, 2, 5, 4, 3, 3, 8, 5, 4, 3, 2, 4, 6, 5, 4, 3, 3, 7, 2, 3, 6, 2, 6, 4, 2, 4, 5, 5, 5, 2, 7, 6, 4, 4, 3, 9, 4, 3, 4, 2, 3, 3, 4, 4, 6, 2, 3, 3, 5, 7, 4, 2, 4, 3, 5, 10, 3, 8, 5, 4, 3, 4, 3, 4, 3, 6, 5, 2, 5, 2, 3, 4, 7, 6, 6, 2, 4, 5, 4, 3, 5, 3, 3, 5, 7, 4, 2, 5, 4, 4, 3, 5, 2, 4, 7, 3, 4, 6, 4, 4, 3, 2, 8, 2, 4, 6, 2, 3, 5, 2, 8, 4, 8, 5, 4, 3, 3, 2, 4, 8, 3, 5, 3, 2, 6, 4, 5, 3, 4, 7, 5, 2, 2, 5, 2, 2, 3, 3, 9, 2, 3, 5, 4, 7, 3, 4, 3, 3, 5, 7, 9, 5, 7, 6, 6, 3, 4, 4, 3, 6, 3, 6, 5, 5, 6, 5, 4, 4, 4, 3, 6, 7, 9, 7, 2, 2, 3, 7, 7, 3, 3, 4, 4, 3, 6, 3, 4, 2, 7, 2, 6, 4, 5, 3, 3, 6, 4, 7, 4, 5, 2, 2, 3, 4, 4, 4, 3, 3, 5, 3, 3, 3, 6, 2, 6, 4, 3, 6, 6, 6, 7, 5, 6, 2, 4, 3, 3, 2, 6, 3, 4, 6, 4, 6, 3, 4, 4, 5, 4, 2, 2, 3, 9, 3, 2, 3, 3, 6, 4, 5, 2, 5, 6, 2, 2, 5, 4, 5, 5, 7, 3, 3, 7, 9, 3, 4, 2, 3, 2, 3, 3, 6, 6, 4, 9, 3, 8, 5, 3, 3, 9, 5, 6, 4, 7, 6, 1, 2, 7, 4, 5, 6, 3, 4, 2, 6, 4, 7, 2, 4, 5, 7, 10, 3, 4, 6, 6, 7, 2, 2, 3, 4, 2, 3, 4, 6, 2, 2, 3, 4, 4, 8, 3, 9, 5, 5, 5, 4, 3, 7, 7, 5, 7, 4, 4, 2, 4, 3, 3, 9, 3, 3, 5, 7, 5, 5, 5, 4, 3, 3, 2, 3, 3, 5, 4, 7, 2, 3, 6, 3, 8, 4, 2, 7, 4, 3, 5, 4, 5, 5, 4, 2, 4, 9, 2, 3, 6, 8, 7, 2, 5, 3, 4, 9, 5, 4, 6, 5, 3, 4, 6, 3, 3, 4, 2, 7, 5, 2, 2, 3, 4, 3, 3, 3, 4, 8, 4, 3, 4, 6, 2, 6, 7, 4, 3, 4, 5, 3, 4, 5, 9, 2, 5, 3, 7, 4, 6, 5, 5, 2, 5, 5, 3, 4, 7, 7, 4, 4, 8, 2, 2, 2, 6, 2, 4, 2, 4, 4, 5, 3, 4, 7, 4, 3, 9, 6, 6, 5, 3, 3, 2, 3, 3, 2, 3, 3, 6, 5, 8, 4, 4, 2, 5, 3, 3, 2, 2, 6, 2, 4, 3, 2, 6, 8, 2, 3, 5, 2, 6, 4, 3, 4, 4, 6, 2, 4, 3, 4, 5, 5, 3, 5, 4, 2, 2, 2, 2, 5, 8, 6, 2, 3, 2, 9, 6, 7, 4, 3, 2, 5, 6, 4, 2, 3, 2, 3, 3, 6, 4, 5, 4, 5, 4, 3, 4, 5, 2, 3, 5, 6, 4, 4, 3, 4, 5, 9, 6, 8, 3, 3, 7, 7, 4, 4, 3, 4, 5, 2, 3, 5, 3, 2, 6, 3, 8, 5, 4, 6, 3, 6, 2, 6, 2, 6, 3, 3, 4, 4, 4, 6, 2, 4, 6, 2, 4, 8, 7, 7, 3, 5, 7, 5, 3, 2, 3, 2, 2, 4, 2, 4, 6, 5, 2, 2, 3, 6, 5, 3, 3, 4, 3, 3, 4, 2, 3, 4, 2, 2, 5, 3, 3, 3, 6, 5, 3, 4, 4, 9, 5, 4, 3, 4, 5, 2, 4, 4, 4, 3, 3, 6, 3, 7, 6, 6, 5, 4, 5, 5, 6, 3, 3, 2, 2, 7, 2, 8, 7, 5, 3, 8, 2, 2, 4, 5, 2, 2, 4, 4, 8, 4, 5, 2, 5, 5, 3, 4, 7, 3, 2, 3, 3, 6, 4, 4, 2, 5, 4, 6, 2, 4, 5, 4, 4, 10, 5, 3, 5, 2, 3, 3, 4, 2, 4, 4, 7, 7, 3, 5, 2, 5, 2, 3, 3, 4, 7, 5, 3, 4, 4, 3, 3, 4, 4, 4, 4, 6, 3, 2, 6, 3, 2, 3, 2, 2, 2, 4, 3, 5, 5, 5, 6, 3, 6, 5, 6, 3, 7, 3, 3, 3, 5, 3, 5, 3, 3, 3, 5, 3, 1, 2, 5, 3, 5, 4, 3, 3, 2, 4, 5, 9, 6, 6, 5, 4, 2, 5, 3, 3, 6, 5, 4, 2, 4, 3, 6, 6, 3, 3, 5, 2, 8, 2, 3, 4, 2, 3, 4, 2, 5, 3, 3, 2, 6, 6, 6, 3, 2, 2, 4, 3, 5, 2, 3, 4, 6, 2, 5, 5, 4, 4, 8, 2, 5, 10, 4, 3, 3, 4, 3, 2, 4, 7, 2, 4, 6, 6, 6, 4, 5, 2, 5, 6, 4, 6, 7, 4, 4, 6, 3, 10, 4, 5, 5, 4, 5, 3, 8, 6, 5, 7, 5, 3, 3, 3, 2, 5, 3, 6, 2, 9, 6, 5, 7, 2, 4, 5, 6, 5, 2, 7, 5, 5, 4, 8, 4, 4, 6, 2, 6, 4, 3, 3, 4, 7, 6, 4, 6, 3, 3, 7, 10, 4, 4, 5, 8, 4, 10, 3, 5, 5, 4, 6, 7, 4, 2, 7, 4, 7, 7, 6, 6, 3, 2, 2, 4, 3, 5, 4, 4, 5, 7, 3, 4, 3, 4, 7, 3, 4, 3, 3, 3, 2, 4, 5, 6, 3, 4, 5, 8, 6, 6, 3, 4, 5, 8, 7, 2, 7, 2, 2, 3, 4, 2, 8, 4, 4, 3, 5, 6, 9, 6, 4, 3, 8, 3, 2, 3, 4, 5, 2, 6, 4, 4, 2, 2, 2, 5, 4, 2, 5, 3, 4, 8, 3, 3, 3, 4, 4, 3, 6, 4, 5, 2, 4, 5, 8, 7, 6, 4, 5, 2, 5, 5, 5, 5, 3, 4, 7, 6, 2, 7, 8, 3, 4, 4, 3, 3, 4, 2, 2, 4, 3, 3, 4, 3, 8, 4, 2, 6, 5, 3, 5, 3, 5, 2, 4, 3, 7, 4, 5, 6, 3, 5, 5, 3, 4, 3, 2, 3, 2, 6, 2, 4, 3, 7, 2, 3, 2, 6, 2, 4, 4, 4, 4, 3, 2, 4, 4, 4, 5, 5, 4, 6, 7, 3, 4, 7, 10, 6, 5, 6, 6, 4, 4, 3, 7, 6, 3, 3, 4, 4, 7, 2, 5, 6, 5, 5, 3, 8, 5, 3, 3, 2, 6, 3, 5, 6, 4, 2, 4, 6, 4, 2, 2, 4, 6, 3, 4, 7, 4, 8, 7, 10, 4, 10, 4, 3, 7, 6, 8, 3, 2, 6, 6, 7, 3, 9, 5, 3, 7, 8, 2, 4, 4, 2, 5, 5, 2, 5, 7, 8, 4, 6, 2, 8, 6, 5, 6, 4, 4, 7, 3, 4, 4, 9, 2, 7, 6, 7, 4, 2, 4, 4, 4, 4, 5, 4, 7, 5, 3, 5, 4, 7, 3, 4, 2, 2, 2, 6, 2, 5, 4, 5, 5, 4, 3, 4, 7, 2, 6, 3, 6, 6, 4, 3, 2, 3, 4, 6, 5, 6, 9, 4, 2, 3, 2, 3, 6, 7, 4, 2, 3, 3, 4, 6, 6, 4, 6, 7, 2, 5, 2, 4, 10, 3, 4, 2, 4, 2, 4, 9, 5, 3, 6, 3, 3, 6, 7, 3, 5, 3, 3, 8, 8, 3, 3, 5, 6, 3, 7, 4, 3, 5, 2, 2, 3, 8, 3, 6, 3, 5, 7, 2, 5, 5, 8, 5, 5, 4, 2, 4, 3, 3, 4, 4, 4, 4, 8, 3, 6, 4, 4, 3, 2, 3, 3, 3, 4, 4, 6, 3, 5, 3, 7, 3, 3, 3, 5, 4, 6, 3, 2, 3, 6, 2, 3, 5, 4, 9, 6, 3, 3, 2, 2, 2, 5, 6, 5, 6, 5, 4, 4, 4, 2, 3, 4, 2, 2, 2, 7, 2, 2, 3, 8, 3, 2, 3, 4, 4, 4, 3, 5, 3, 8, 7, 3, 3, 4, 6, 3, 3, 2, 3, 4, 4, 4, 3, 4, 5, 4, 6, 6, 6, 4, 5, 3, 4, 4, 7, 3, 3, 4, 5, 5, 6, 7, 3, 5, 3, 4, 5, 4, 2, 8, 3, 4, 2, 4, 3, 2, 4, 4, 2, 3, 7, 3, 5, 8, 3, 9, 4, 5, 3, 4, 3, 2, 6, 5, 4, 5, 6, 6, 7, 3, 4, 4, 6, 3, 2, 3, 4, 6, 3, 4, 4, 5, 5, 5, 3, 2, 4, 2, 4, 2, 2, 7, 3, 3, 5, 4, 4, 3, 5, 4, 2, 4, 2, 2, 4, 2, 3, 3, 5, 3, 4, 4, 4, 4, 7, 5, 3, 3, 4, 5, 3, 7, 8, 8, 3, 7, 5, 3, 7, 4, 3, 2, 3, 2, 4, 3, 8, 3, 3, 4, 6, 3, 7, 2, 5, 4, 5, 4, 3, 3, 2, 6, 8, 3, 3, 4, 3, 5, 6, 3, 5, 4, 3, 3, 3, 3, 2, 4, 6, 5, 2, 3, 3, 9, 4, 5, 4, 7, 6, 6, 5, 8, 6, 5, 4, 7, 4, 3, 3, 4, 3, 6, 2, 5, 4, 4, 3, 2, 10, 5, 3, 3, 3, 7, 4, 3, 3, 7, 5, 5, 3, 2, 3, 7, 3, 2, 5, 4, 9, 2, 3, 4, 2, 6, 4, 5, 3, 5, 2, 3, 3, 2, 2, 3, 3, 2, 5, 4, 6, 4, 4, 3, 4, 2, 5, 3, 3, 3, 9, 6, 5, 6, 7, 3, 4, 4, 4, 7, 2, 4, 6, 8, 7, 5, 3, 7, 2, 8, 2, 2, 4, 6, 5, 6, 3, 2, 3, 5, 8, 10, 8, 4, 5, 2, 5, 2, 3, 4, 5, 3, 6, 3, 5, 5, 2, 9, 2, 2, 8, 6, 5, 6, 2, 2, 11, 3, 3, 2, 3, 4, 5, 5, 3, 3, 3, 4, 2, 3, 3, 2, 2, 4, 2, 4, 4, 3, 4, 2, 5, 7, 4, 6, 2, 4, 4, 7, 5, 4, 5, 3, 3, 4, 5, 4, 3, 3, 3, 3, 6, 5, 4, 8, 5, 6, 3, 5, 3, 8, 4, 7, 3, 6, 2, 2, 8, 8, 2, 7, 4, 4, 3, 2, 6, 3, 3, 2, 5, 7, 4, 5, 6, 4, 6, 3, 6, 4, 3, 3, 5, 3, 5, 5, 2, 3, 5, 6, 4, 6, 2, 8, 3, 3, 2, 3, 5, 4, 7, 3, 2, 7, 6, 2, 8, 8, 4, 5, 5, 4, 3, 4, 3, 4, 2, 5, 5, 5, 5, 2, 3, 4, 4, 2, 3, 7, 2, 5, 4, 4, 6, 3, 4, 5, 5, 3, 9, 5, 8, 2, 5, 3, 4, 4, 6, 3, 4, 8, 5, 8, 4, 6, 5, 5, 4, 3, 7, 8, 5, 2, 5, 4, 7, 6, 3, 5, 5, 8, 8, 3, 5, 4, 4, 4, 2, 3, 6, 4, 4, 4, 4, 3, 4, 5, 2, 8, 4, 4, 3, 7, 6, 3, 4, 6, 3, 2, 3, 3, 2, 2, 4, 8, 3, 4, 7, 6, 3, 3, 2, 2, 4, 5, 7, 3, 2, 7, 10, 5, 8, 2, 3, 3, 5, 4, 2, 8, 9, 4, 5, 4, 7, 4, 2, 4, 8, 2, 4, 8, 4, 3, 3, 2, 2, 8, 9, 5, 6, 2, 3, 5, 2, 2, 4, 2, 5, 5, 2, 3, 2, 2, 5, 7, 2, 4, 5, 5, 6, 3, 5, 4, 6, 3, 5, 2, 6, 4, 4, 7, 7, 4, 4, 6, 6, 3, 2, 5, 3, 5, 2, 4, 7, 2, 3, 6, 5, 3, 9, 8, 3, 9, 5, 4, 3, 3, 4, 2, 3, 7, 5, 8, 3, 6, 4, 2, 4, 4, 3, 6, 5, 3, 6, 5, 2, 5, 6, 4, 2, 7, 7, 3, 5, 3, 3, 6, 4, 8, 3, 2, 3, 3, 3, 2, 4, 3, 7, 2, 3, 3, 5, 2, 3, 3, 2, 3, 3, 4, 3, 4, 7, 3, 8, 9, 7, 5, 5, 6, 5, 5, 8, 5, 10, 10, 5, 6, 5, 5, 4, 5, 3, 5, 6, 4, 4, 4, 4, 4, 2, 6, 4, 6, 2, 8, 4, 5, 3, 2, 8, 3, 3, 4, 3, 5, 3, 5, 8, 2, 7, 4, 9, 3, 4, 6, 3, 8, 3, 3, 2, 4, 2, 4, 4, 5, 2, 4, 9, 7, 4, 4, 4, 6, 3, 4, 3, 3, 4, 5, 7, 3, 5, 4, 3, 2, 4, 4, 6, 5, 5, 5, 7, 2, 2, 3, 5, 4, 2, 9, 2, 4, 3, 3, 7, 4, 4, 5, 2, 2, 8, 3, 7, 5, 4, 8, 2, 4, 6, 6, 5, 5, 6, 4, 5, 7, 6, 3, 7, 2, 5, 3, 4, 7, 3, 4, 5, 5, 7, 5, 6, 6, 5, 5, 4, 3, 4, 7, 2, 3, 2, 7, 6, 6, 2, 5, 3, 3, 6, 6, 4, 3, 3, 7, 7, 4, 7, 3, 7, 3, 6, 4, 3, 3, 2, 7, 7, 2, 4, 7, 3, 3, 6, 6, 6, 6, 3, 4, 5, 9, 7, 6, 4, 4, 5, 5, 3, 2, 4, 8, 6, 3, 6, 6, 9, 5, 4, 4, 4, 5, 6, 4, 4, 9, 4, 4, 5, 3, 2, 9, 4, 4, 4, 2, 3, 8, 2, 2, 2, 6, 2, 5, 5, 3, 6, 2, 5, 5, 4, 2, 4, 7, 2, 2, 4, 5, 4, 3, 5, 3, 6, 5, 3, 3, 5, 5, 6, 3, 4, 2, 6, 5, 3, 4, 5, 2, 4, 3, 2, 2, 5, 3, 2, 2, 5, 7, 2, 2, 6, 5, 4, 4, 5, 3, 3, 3, 6, 4, 3, 10, 7, 7, 2, 4, 4, 7, 3, 2, 2, 4, 4, 3, 1, 4, 4, 4, 5, 4, 8, 7, 3, 8, 5, 2, 3, 4, 4, 7, 3, 7, 4, 7, 5, 4, 5, 6, 3, 4, 3, 4, 4, 3, 7, 5, 6, 4, 4, 4, 7, 5, 3, 4, 3, 2, 2, 7, 9, 3, 5, 7, 4, 3, 4, 8, 9, 4, 3, 2, 3, 3, 5, 9, 4, 5, 3, 3, 4, 7, 2, 5, 3, 4, 4, 5, 5, 5, 7, 3, 6, 3, 3, 3, 4, 3, 3, 6, 5, 3, 4, 8, 2, 4, 2, 2, 3, 4, 6, 4, 3, 4, 8, 4, 9, 3, 6, 2, 7, 5, 6, 3, 6, 5, 8, 7, 2, 4, 2, 3, 6, 6, 7, 4, 4, 5, 5, 4, 6, 4, 2, 2, 4, 6, 2, 4, 6, 4, 3, 3, 5, 3, 6, 3, 5, 5, 7, 5, 5, 8, 4, 5, 3, 8, 2, 9, 2, 2, 3, 5, 3, 9, 5, 2, 7, 4, 6, 3, 4, 4, 5, 6, 7, 7, 2, 5, 8, 4, 3, 7, 5, 6, 2, 5, 3, 8, 3, 10, 4, 8, 3, 4, 6, 8, 3, 3, 8, 3, 6, 6, 7, 2, 5, 2, 5, 4, 2, 3, 7, 7, 5, 3, 8, 3, 4, 4, 6, 6, 2, 5, 6, 3, 3, 4, 2, 6, 4, 3, 2, 6, 9, 2, 3, 4, 7, 7, 3, 5, 6, 5, 3, 4, 3, 5, 2, 3, 4, 8, 7, 4, 8, 4, 4, 3, 6, 3, 7, 7, 3, 3, 6, 4, 4, 4, 6, 4, 6, 4, 7, 3, 5, 4, 5, 3, 3, 2, 2, 7, 6, 4, 5, 9, 6, 4, 5, 5, 7, 4, 8, 5, 3, 3, 6, 3, 7, 3, 5, 9, 3, 4, 3, 3, 4, 4, 5, 5, 2, 3, 4, 9, 7, 2, 5, 3, 3, 2, 8, 4, 4, 2, 4, 4, 2, 2, 6, 2, 6, 2, 7, 4, 3, 3, 9, 8, 4, 4, 3, 5, 2, 4, 4, 6, 2, 4, 4, 2, 5, 7, 4, 3, 2, 6, 5, 2, 4, 2, 4, 10, 5, 4, 5, 7, 7, 3, 2, 4, 10, 4, 5, 3, 5, 2, 7, 2, 2, 5, 2, 5, 4, 7, 6, 4, 4, 3, 4, 6, 5, 8, 8, 2, 6, 7, 4, 6, 5, 7, 4, 4, 7, 4, 4, 4, 6, 8, 6, 4, 4, 6, 7, 4, 4, 4, 4, 4, 4, 6, 4, 5, 3, 4, 6, 8, 5, 2, 2, 4, 4, 2, 3, 2, 7, 3, 7, 6, 9, 7, 2, 7, 2, 4, 2, 5, 7, 4, 2, 2, 3, 4, 2, 5, 8, 7, 3, 4, 5, 2, 3, 3, 4, 7, 6, 5, 3, 5, 4, 6, 2, 11, 4, 7, 6, 2, 8, 3, 3, 2, 9, 5, 5, 7, 3, 5, 4, 4, 3, 2, 5, 3, 7, 4, 6, 6, 6, 5, 6, 5, 5, 4, 4, 4, 7, 4, 6, 4, 4, 2, 4, 4, 2, 4, 5, 6, 4, 3, 8, 2, 5, 2, 3, 7, 3, 3, 5, 10, 2, 3, 3, 6, 5, 8, 8, 9, 3, 6, 2, 4, 5, 5, 5, 4, 5, 5, 5, 2, 2, 8, 2, 7, 5, 4, 5, 3, 2, 4, 3, 5, 3, 6, 5, 4, 6, 4, 9, 4, 6, 6, 4, 3, 5, 3, 6, 4, 5, 3, 4, 4, 5, 3, 2, 6, 5, 2, 6, 2, 5, 4, 5, 5, 5, 7, 4, 2, 8, 4, 3, 4, 5, 3, 7, 8, 8, 7, 2, 2, 2, 4, 5, 5, 2, 8, 4, 5, 2, 3, 4, 4, 4, 4, 5, 2, 4, 6, 4, 6, 6, 4, 2, 3, 11, 2, 2, 4, 5, 4, 3, 9, 4, 3, 3, 3, 4, 8, 2, 2, 8, 4, 6, 8, 3, 2, 2, 2, 4, 4, 5, 5, 4, 5, 4, 4, 4, 4, 4, 5, 3, 3, 4, 6, 4, 5, 7, 7, 3, 5, 2, 2, 5, 5, 2, 5, 2, 4, 4, 2, 6, 4, 3, 3, 7, 5, 7, 2, 5, 6, 3, 4, 2, 3, 10, 4, 5, 2, 6, 7, 8, 7, 9, 7, 2, 4, 4, 3, 5, 7, 5, 2, 5, 5, 5, 3, 2, 5, 2, 6, 6, 6, 3, 8, 5, 2, 4, 5, 3, 5, 7, 5, 4, 3, 2, 4, 3, 2, 2, 4, 3, 4, 3, 5, 4, 5, 4, 3, 6, 5, 3, 5, 9, 4, 4, 6, 3, 5, 2, 4, 5, 10, 5, 3, 5, 9, 3, 5, 5, 5, 3, 7, 4, 3, 3, 4, 7, 5, 3, 7, 6, 7, 4, 5, 5, 5, 4, 7, 3, 4, 4, 2, 3, 5, 4, 3, 4, 3, 5, 6, 4, 7, 5, 8, 2, 6, 2, 4, 5, 3, 5, 2, 5, 3, 8, 3, 5, 3, 3, 4, 2, 3, 4, 3, 2, 4, 4, 4, 5, 4, 4, 3, 4, 3, 7, 2, 3, 4, 8, 6, 3, 3, 4, 5, 3, 3, 3, 4, 2, 3, 6, 6, 2, 4, 3, 7, 6, 4, 5, 4, 6, 2, 8, 2, 5, 7, 2, 4, 4, 5, 5, 3, 6, 4, 2, 3, 3, 6, 6, 5, 3, 2, 5, 4, 8, 3, 3, 4, 4, 1, 4, 5, 3, 4, 4, 3, 4, 8, 4, 6, 4, 7, 7, 2, 5, 4, 8, 2, 4, 3, 4, 3, 6, 5, 4, 5, 8, 5, 3, 6, 4, 3, 9, 9, 8, 5, 3, 4, 5, 3, 2, 4, 2, 2, 5, 3, 6, 4, 6, 2, 3, 4, 2, 2, 2, 4, 2, 7, 4, 5, 2, 6, 4, 7, 4, 7, 2, 4, 6, 6, 4, 6, 5, 3, 5, 3, 4, 6, 3, 4, 3, 4, 3, 4, 2, 7, 6, 2, 3, 3, 5, 6, 4, 3, 6, 6, 2, 4, 2, 3, 3, 3, 3, 4, 6, 9, 4, 7, 6, 2, 6, 7, 3, 3, 4, 4, 2, 4, 3, 5, 6, 7, 3, 6, 4, 3, 2, 5, 4, 4, 4, 4, 5, 5, 2, 3, 4, 5, 4, 4, 6, 5, 3, 5, 4, 2, 5, 4, 9, 5, 7, 7, 5, 3, 6, 7, 4, 3, 1, 4, 4, 4, 4, 3, 5, 4, 8, 2, 2, 6, 5, 3, 7, 4, 3, 4, 4, 3, 5, 7, 6, 2, 2, 3, 5, 4, 4, 3, 6, 3, 6, 6, 2, 4, 4, 4, 3, 3, 7, 4, 2, 3, 7, 6, 4, 8, 5, 3, 4, 3, 2, 3, 7, 6, 5, 3, 4, 3, 4, 2, 7, 8, 6, 3, 4, 6, 2, 4, 3, 3, 4, 5, 5, 4, 3, 3, 4, 4, 4, 6, 6, 3, 4, 5, 3, 4, 7, 9, 4, 3, 4, 2, 3, 5, 4, 6, 5, 2, 5, 4, 4, 8, 6, 5, 6, 4, 7, 2, 3, 9, 4, 5, 2, 6, 3, 9, 2, 9, 5, 6, 5, 8, 6, 4, 2, 5, 5, 2, 4, 4, 3, 2, 8, 6, 4, 7, 5, 5, 7, 5, 3, 2, 2, 5, 3, 5, 6, 10, 7, 5, 2, 3, 5, 3, 5, 4, 3, 4, 5, 5, 5, 3, 5, 3, 4, 5, 7, 4, 7, 9, 2, 6, 3, 4, 3, 3, 7, 5, 6, 10, 5, 7, 8, 3, 2, 6, 4, 3, 3, 5, 6, 4, 6, 4, 7, 3, 4, 5, 3, 6, 7, 2, 3, 2, 4, 3, 3, 7, 4, 7, 3, 2, 7, 4, 4, 5, 2, 4, 3, 5, 3, 6, 5, 2, 5, 4, 4, 2, 4, 2, 2, 4, 4, 5, 5, 6, 3, 2, 7, 4, 5, 5, 3, 3, 8, 7, 5, 4, 8, 6, 2, 8, 3, 4, 8, 5, 5, 5, 2, 3, 4, 2, 6, 9, 5, 4, 3, 4, 4, 5, 2, 5, 4, 3, 2, 3, 6, 5, 5, 7, 4, 4, 3, 4, 2, 3, 6, 2, 2, 8, 7, 3, 6, 7, 5, 4, 4, 4, 5, 2, 5, 7, 8, 4, 5, 6, 3, 6, 2, 5, 3, 4, 4, 5, 8, 4, 4, 6, 6, 6, 6, 7, 6, 4, 5, 3, 3, 6, 7, 5, 7, 3, 3, 2, 3, 5, 6, 4, 2, 4, 4, 2, 8, 3, 4, 4, 3, 6, 6, 7, 2, 4, 4, 4, 3, 2, 7, 5, 6, 10, 8, 3, 6, 4, 3, 5, 3, 5, 3, 8, 3, 8, 8, 4, 4, 5, 5, 6, 3, 5, 2, 8, 3, 6, 2, 9, 3, 7, 8, 4, 4, 2, 5, 4, 3, 2, 9, 3, 5, 6, 3, 3, 5, 6, 5, 4, 2, 5, 5, 3, 3, 5, 4, 5, 3, 3, 2, 5, 4, 2, 6, 2, 4, 5, 3, 2, 4, 4, 3, 3, 7, 6, 9, 7, 7, 5, 6, 4, 6, 2, 2, 4, 3, 7, 4, 9, 2, 3, 6, 6, 3, 8, 4, 7, 8, 7, 5, 7, 4, 8, 6, 5, 5, 7, 5, 2, 2, 4, 4, 5, 8, 4, 5, 4, 4, 6, 2, 4, 4, 2, 5, 4, 3, 10, 8, 3, 3, 3, 6, 4, 4, 4, 4, 7, 5, 4, 3, 3, 5, 7, 2, 6, 4, 4, 5, 4, 4, 4, 7, 5, 4, 2, 7, 5, 2, 4, 2, 5, 3, 6, 5, 7, 5, 4, 4, 5, 3, 5, 7, 7, 2, 3, 3, 3, 5, 2, 5, 2, 5, 8, 5, 3, 6, 8, 3, 4, 2, 2, 6, 6, 4, 3, 5, 4, 6, 10, 7, 3, 5, 4, 5, 5, 5, 4, 3, 5, 2, 4, 6, 2, 3, 7, 5, 4, 6, 2, 7, 3, 8, 4, 7, 4, 5, 5, 5, 5, 6, 5, 4, 6, 10, 5, 4, 4, 5, 2, 5, 6, 7, 3, 7, 2, 6, 8, 3, 9, 6, 5, 3, 3, 5, 4, 5, 6, 5, 5, 6, 7, 5, 5, 3, 5, 5, 3, 5, 4, 5, 4, 2, 4, 5, 3, 6, 2, 3, 2, 4, 5, 6, 6, 6, 6, 5, 2, 4, 9, 4, 7, 4, 6, 5, 6, 4, 6, 7, 5, 3, 2, 5, 3, 6, 6, 5, 4, 3, 7, 2, 2, 3, 4, 3, 3, 6, 5, 6, 5, 7, 4, 7, 3, 3, 2, 3, 4, 2, 2, 3, 5, 4, 3, 6, 5, 4, 5, 3, 5, 3, 4, 5, 3, 6, 4, 3, 5, 3, 6, 3, 6, 4, 2, 4, 5, 7, 3, 8, 8, 7, 5, 7, 7, 2, 4, 3, 4, 6, 3, 2, 8, 6, 5, 8, 4, 2, 5, 3, 5, 2, 2, 4, 2, 7, 5, 2, 4, 2, 7, 7, 3, 2, 6, 6, 3, 2, 2, 6, 4, 5, 6, 4, 4, 4, 6, 6, 4, 2, 4, 6, 5, 2, 7, 5, 5, 7, 6, 3, 5, 3, 5, 6, 4, 4, 4, 4, 4, 7, 7, 3, 4, 9, 6, 8, 3, 3, 4, 5, 2, 3, 7, 5, 4, 4, 3, 3, 4, 3, 5, 5, 3, 8, 3, 6, 7, 4, 3, 4, 5, 2, 4, 5, 8, 5, 8, 5, 3, 8, 5, 2, 3, 8, 6, 3, 4, 6, 6, 3, 3, 3, 2, 8, 7, 2, 4, 6, 6, 4, 4, 6, 2, 3, 4, 3, 6, 5, 6, 5, 6, 3, 5, 3, 3, 5, 4, 6, 4, 6, 7, 7, 4, 6, 5, 6, 5, 2, 2, 2, 6, 5, 4, 2, 3, 5, 2, 2, 9, 4, 5, 6, 3, 4, 3, 3, 5, 5, 4, 4, 3, 6, 5, 2, 7, 2, 6, 4, 4, 4, 3, 2, 7, 4, 6, 8, 2, 6, 3, 2, 7, 4, 3, 4, 4, 6, 3, 6, 4, 4, 3, 5, 3, 4, 8, 4, 5, 4, 3, 3, 6, 4, 4, 2, 4, 3, 4, 2, 5, 7, 7, 4, 3, 8, 6, 3, 6, 4, 4, 6, 4, 6, 8, 3, 3, 2, 5, 5, 6, 4, 4, 3, 6, 4, 3, 7, 7, 3, 5, 6, 3, 5, 3, 3, 4, 8, 8, 4, 6, 4, 7, 4, 3, 6, 6, 6, 3, 4, 6, 4, 8, 5, 8, 4, 5, 4, 8, 6, 3, 2, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 7, 6, 4, 4, 5, 6, 4, 7, 4, 5, 6, 5, 4, 7, 4, 2, 3, 9, 4, 4, 4, 3, 3, 9, 7, 2, 4, 3, 6, 5, 5, 8, 2, 3, 7, 8, 4, 3, 6, 5, 4, 7, 5, 3, 5, 2, 4, 6, 2, 3, 6, 7, 6, 3, 3, 5, 5, 2, 4, 6, 3, 3, 5, 7, 4, 3, 4, 6, 7, 4, 8, 5, 4, 6, 5, 5, 7, 7, 2, 4, 2, 5, 6, 5, 5, 7, 4, 4, 2, 7, 5, 2, 3, 2, 3, 3, 6, 7, 3, 7, 6, 3, 8, 5, 3, 7, 6, 2, 3, 6, 4, 2, 4, 2, 4, 6, 3, 6, 3, 3, 4, 2, 4, 7, 7, 2, 7, 6, 4, 4, 3, 3, 3, 3, 4, 5, 4, 4, 2, 4, 3, 3, 5, 9, 3, 1, 5, 5, 5, 2, 2, 3, 6, 4, 3, 3, 2, 4, 4, 3, 9, 4, 5, 8, 7, 3, 2, 10, 7, 6, 2, 7, 4, 5, 10, 7, 3, 4, 7, 2, 9, 2, 6, 6, 6, 6, 5, 4, 7, 4, 3, 2, 8, 4, 4, 5, 5, 4, 6, 3, 9, 4, 3, 2, 4, 3, 3, 3, 2, 5, 6, 3, 4, 3, 5, 4, 5, 3, 7, 4, 5, 4, 2, 4, 5, 4, 8, 3, 2, 4, 6, 3, 3, 6, 3, 5, 3, 6, 9, 8, 5, 2, 3, 2, 4, 6, 10, 7, 5, 3, 4, 5, 4, 5, 9, 4, 3, 4, 4, 2, 3, 2, 4, 3, 5, 2, 8, 4, 4, 3, 6, 4, 7, 8, 2, 2, 5, 2, 2, 2, 4, 3, 3, 7, 4, 3, 8, 4, 6, 4, 5, 6, 5, 8, 4, 6, 4, 6, 5, 3, 6, 6, 3, 6, 8, 3, 5, 3, 3, 6, 4, 3, 6, 2, 4, 3, 5, 3, 5, 7, 4, 8, 3, 4, 7, 2, 8, 2, 5, 3, 9, 3, 7, 5, 5, 3, 6, 7, 3, 4, 10, 3, 5, 3, 5, 4, 8, 4, 2, 2, 2, 7, 6, 4, 5, 3, 3, 5, 2, 5, 2, 5, 2, 5, 5, 8, 4, 6, 5, 3, 4, 3, 6, 3, 4, 5, 6, 2, 3, 5, 2, 5, 7, 4, 9, 7, 5, 4, 6, 2, 5, 4, 7, 4, 9, 3, 5, 7, 3, 5, 4, 6, 4, 4, 4, 2, 9, 5, 6, 2, 2, 3, 4, 5, 3, 4, 6, 6, 5, 2, 5, 4, 4, 3, 4, 2, 6, 5, 4, 2, 4, 5, 3, 2, 6, 4, 3, 5, 6, 7, 4, 4, 2, 3, 5, 7, 5, 5, 3, 3, 2, 3, 3, 5, 3, 5, 4, 5, 6, 4, 2, 6, 5, 2, 3, 4, 4, 4, 5, 4, 2, 4, 5, 8, 3, 5, 2, 4, 5, 4, 4, 4, 5, 5, 4, 6, 2, 4, 3, 4, 5, 9, 4, 6, 7, 2, 7, 4, 5, 3, 6, 5, 4, 4, 4, 3, 4, 3, 4, 2, 2, 6, 4, 7, 4, 3, 8, 3, 3, 3, 3, 3, 6, 6, 4, 5, 5, 2, 3, 3, 3, 6, 6, 4, 3, 3, 6, 5, 3, 5, 3, 3, 6, 3, 5, 6, 6, 4, 6, 5, 3, 3, 5, 4, 3, 5, 6, 7, 8, 3, 3, 8, 6, 3, 2, 4, 7, 3, 5, 3, 4, 4, 6, 4, 7, 2, 3, 6, 2, 3, 4, 5, 3, 4, 7, 6, 5, 2, 7, 3, 5, 5, 6, 5, 3, 4, 4, 8, 8, 3, 8, 4, 7, 4, 3, 3, 3, 2, 4, 3, 4, 4, 8, 6, 8, 7, 2, 2, 3, 7, 7, 4, 4, 5, 5, 4, 2, 2, 3, 2, 2, 5, 4, 3, 2, 10, 5, 2, 4, 5, 5, 6, 3, 5, 4, 5, 6, 5, 2, 2, 5, 5, 2, 3, 6, 3, 2, 3, 3, 4, 3, 4, 7, 7, 5, 4, 4, 5, 3, 4, 4, 5, 6, 5, 4, 2, 5, 7, 5, 2, 4, 5, 5, 4, 4, 4, 10, 3, 8, 4, 4, 4, 4, 3, 5, 5, 3, 3, 6, 4, 3, 3, 3, 4, 5, 7, 4, 3, 8, 7, 8, 6, 8, 3, 4, 2, 2, 7, 6, 4, 7, 6, 6, 3, 3, 4, 2, 2, 5, 2, 6, 7, 2, 4, 7, 5, 3, 3, 5, 2, 3, 6, 5, 5, 4, 2, 5, 7, 4, 2, 7, 3, 4, 3, 8, 7, 2, 6, 4, 5, 2, 4, 3, 4, 4, 5, 4, 5, 6, 9, 4, 2, 2, 4, 4, 3, 8, 3, 3, 3, 8, 6, 3, 6, 4, 5, 3, 3, 4, 8, 2, 6, 7, 5, 3, 3, 2, 4, 5, 4, 4, 8, 6, 5, 4, 6, 2, 3, 4, 2, 2, 6, 5, 4, 5, 4, 5, 3, 3, 4, 3, 5, 5, 4, 5, 8, 7, 4, 6, 5, 4, 2, 5, 5, 5, 3, 2, 5, 5, 7, 4, 5, 8, 6, 9, 3, 3, 6, 5, 2, 3, 5, 4, 7, 3, 6, 6, 2, 3, 6, 3, 3, 5, 4, 4, 3, 4, 7, 4, 6, 2, 2, 3, 3, 5, 3, 8, 3, 3, 6, 3, 4, 3, 4, 3, 5, 3, 6, 6, 2, 5, 2, 6, 3, 3, 3, 3, 4, 5, 8, 6, 6, 2, 4, 3, 6, 5, 3, 3, 8, 5, 3, 3, 2, 4, 2, 4, 2, 9, 4, 4, 4, 4, 4, 3, 3, 3, 8, 2, 4, 6, 8, 5, 2, 4, 3, 7, 6, 8, 2, 3, 7, 3, 3, 3, 4, 7, 6, 4, 7, 4, 2, 3, 9, 3, 6, 5, 5, 3, 5, 5, 6, 8, 7, 6, 3, 2, 4, 6, 3, 7, 7, 6, 4, 8, 5, 3, 5, 3, 6, 3, 3, 4, 4, 6, 2, 3, 4, 2, 3, 3, 3, 3, 7, 6, 4, 6, 5, 2, 3, 3, 3, 5, 3, 5, 9, 2, 6, 4, 3, 3, 5, 4, 3, 7, 2, 5, 7, 2, 3, 6, 4, 6, 4, 7, 3, 3, 4, 8, 5, 4, 2, 6, 7, 8, 9, 2, 3, 7, 4, 5, 3, 3, 4, 2, 3, 4, 2, 4, 3, 4, 4, 4, 2, 6, 5, 3, 3, 3, 3, 3, 5, 4, 5, 3, 3, 3, 3, 3, 6, 5, 4, 3, 3, 4, 3, 3, 5, 3, 5, 4, 4, 7, 5, 5, 5, 4, 2, 3, 7, 9, 5, 5, 5, 6, 4, 3, 4, 2, 5, 6, 5, 7, 4, 2, 7, 7, 5, 3, 8, 4, 2, 4, 3, 4, 5, 4, 4, 4, 5, 5, 3, 2, 5, 4, 3, 2, 4, 3, 3, 6, 6, 4, 3, 2, 2, 5, 5, 2, 5, 5, 2, 2, 2, 7, 3, 2, 4, 4, 3, 3, 5, 10, 4, 9, 2, 2, 3, 6, 4, 2, 4, 3, 3, 7, 3, 5, 3, 6, 6, 4, 4, 8, 3, 4, 10, 3, 3, 8, 3, 2, 7, 4, 6, 3, 7, 3, 4, 7, 4, 4, 7, 3, 2, 6, 5, 4, 4, 7, 3, 5, 2, 5, 9, 3, 4, 4, 3, 3, 3, 3, 4, 5, 4, 8, 7, 3, 2, 5, 5, 5, 6, 5, 4, 3, 4, 3, 3, 4, 7, 4, 5, 5, 3, 4, 2, 4, 6, 2, 4, 6, 5, 3, 5, 3, 8, 5, 5, 6, 3, 4, 7, 2, 7, 4, 4, 5, 4, 6, 2, 7, 5, 2, 3, 6, 6, 4, 2, 4, 2, 4, 9, 4, 4, 5, 2, 2, 8, 7, 4, 4, 7, 6, 6, 5, 3, 5, 4, 2, 4, 5, 5, 5, 6, 3, 8, 6, 4, 4, 4, 5, 3, 5, 3, 7, 2, 3, 3, 5, 3, 5, 4, 4, 8, 5, 3, 4, 5, 7, 6, 3, 3, 7, 3, 3, 6, 7, 7, 2, 3, 6, 7, 4, 5, 6, 4, 5, 4, 3, 3, 5, 4, 4, 5, 5, 5, 4, 4, 4, 5, 5, 7, 7, 5, 4, 6, 4, 3, 4, 4, 6, 7, 3, 6, 6, 3, 2, 9, 6, 3, 3, 6, 6, 5, 6, 8, 2, 4, 5, 8, 3, 6, 5, 7, 2, 8, 7, 9, 4, 5, 8, 6, 3, 6, 2, 3, 6, 5, 4, 2, 4, 4, 7, 2, 6, 4, 3, 3, 4, 6, 3, 5, 4, 2, 3, 7, 6, 6, 5, 6, 3, 4, 3, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 3, 3, 5, 10, 5, 6, 3, 3, 3, 6, 7, 6, 3, 3, 4, 3, 3, 6, 5, 5, 2, 2, 6, 3, 7, 4, 4, 4, 4, 3, 4, 2, 3, 5, 5, 7, 6, 4, 3, 4, 4, 2, 5, 3, 2, 2, 5, 4, 2, 5, 5, 6, 6, 3, 2, 6, 5, 5, 5, 3, 7, 3, 5, 3, 4, 4, 3, 4, 3, 2, 8, 5, 8, 3, 4, 5, 8, 4, 3, 5, 4, 2, 4, 6, 3, 3, 5, 3, 4, 9, 4, 5, 5, 9, 3, 5, 6, 5, 10, 4, 2, 4, 3, 8, 3, 8, 2, 3, 5, 4, 7, 6, 4, 5, 3, 5, 5, 3, 5, 6, 5, 8, 7, 6, 3, 4, 3, 7, 2, 3, 10, 5, 4, 3, 2, 4, 6, 4, 3, 4, 3, 4, 8, 4, 5, 3, 6, 5, 6, 5, 2, 5, 8, 4, 6, 5, 3, 3, 5, 4, 5, 9, 4, 3, 3, 3, 5, 3, 5, 6, 6, 4, 7, 7, 5, 2, 4, 4, 4, 5, 6, 6, 4, 4, 2, 5, 4, 5, 6, 3, 2, 4, 3, 2, 6, 6, 5, 2, 2, 4, 7, 7, 5, 7, 4, 3, 4, 6, 3, 3, 3, 4, 7, 5, 6, 3, 3, 6, 3, 5, 3, 5, 3, 6, 5, 2, 4, 4, 3, 7, 9, 4, 2, 3, 10, 4, 6, 3, 4, 4, 8, 5, 2, 4, 4, 4, 3, 3, 5, 4, 4, 4, 2, 5, 3, 6, 4, 2, 11, 4, 4, 4, 4, 3, 5, 8, 6, 6, 4, 4, 5, 3, 6, 5, 3, 6, 4, 6, 7, 8, 6, 3, 5, 2, 3, 2, 2, 2, 5, 6, 2, 3, 4, 4, 6, 5, 4, 6, 6, 5, 2, 4, 3, 7, 3, 4, 6, 6, 3, 9, 4, 4, 3, 7, 3, 2, 7, 7, 4, 4, 3, 4, 5, 7, 3, 3, 4, 8, 3, 2, 3, 4, 2, 9, 3, 2, 3, 7, 5, 5, 3, 2, 6, 6, 6, 2, 4, 3, 3, 4, 5, 8, 2, 3, 4, 5, 4, 3, 7, 2, 6, 8, 6, 4, 4, 4, 3, 7, 4, 2, 3, 2, 2, 5, 5, 3, 2, 5, 3, 4, 6, 7, 2, 8, 6, 3, 6, 5, 7, 2, 3, 3, 5, 2, 3, 6, 2, 3, 5, 4, 4, 4, 3, 7, 4, 3, 4, 4, 5, 4, 3, 7, 4, 5, 4, 4, 2, 5, 4, 1, 6, 3, 3, 4, 4, 4, 5, 6, 8, 4, 3, 4, 6, 2, 6, 7, 7, 3, 3, 4, 3, 5, 5, 8, 7, 5, 4, 5, 3, 3, 5, 3, 3, 6, 6, 8, 3, 7, 2, 8, 5, 5, 3, 2, 6, 3, 7, 3, 5, 7, 4, 10, 6, 3, 5, 3, 4, 4, 5, 4, 2, 8, 4, 9, 5, 2, 3, 4, 4, 3, 3, 2, 2, 2, 4, 4, 5, 2, 4, 6, 2, 8, 7, 8, 3, 5, 3, 3, 5, 3, 3, 6, 3, 5, 8, 8, 3, 7, 4, 6, 4, 3, 3, 10, 6, 7, 4, 4, 2, 8, 4, 4, 4, 4, 2, 9, 3, 4, 3, 6, 3, 2, 5, 2, 7, 4, 8, 2, 2, 3, 3, 4, 2, 5, 8, 10, 5, 4, 4, 4, 3, 3, 5, 3, 4, 5, 6, 8, 3, 6, 6, 6, 7, 7, 4, 7, 4, 3, 3, 3, 4, 8, 4, 2, 3, 5, 3, 5, 5, 4, 4, 2, 2, 5, 6, 5, 5, 6, 8, 5, 2, 6, 5, 9, 4, 7, 5, 5, 3, 4, 5, 6, 7, 2, 7, 1, 2, 3, 3, 4, 7, 3, 3, 3, 6, 2, 4, 6, 4, 4, 3, 2, 2, 10, 6, 8, 2, 7, 3, 3, 7, 7, 4, 2, 7, 6, 4, 3, 3, 7, 4, 4, 5, 4, 3, 2, 5, 3, 7, 4, 5, 6, 5, 3, 6, 5, 5, 2, 3, 3, 6, 6, 5, 3, 4, 4, 7, 2, 3, 7, 2, 3, 4, 2, 7, 5, 4, 5, 6, 4, 4, 5, 4, 4, 2, 4, 7, 3, 3, 4, 3, 5, 6, 7, 4, 2, 5, 4, 4, 5, 3, 2, 6, 4, 3, 3, 8, 4, 3, 8, 3, 6, 5, 7, 3, 2, 5, 7, 4, 3, 4, 4, 2, 3, 3, 2, 6, 5, 2, 3, 2, 4, 2, 6, 3, 2, 7, 3, 4, 4, 4, 3, 5, 4, 2, 6, 3, 4, 2, 3, 6, 6, 6, 4, 3, 7, 6, 3, 6, 6, 3, 7, 4, 7, 4, 6, 4, 7, 4, 2, 2, 7, 5, 3, 3, 7, 5, 3, 5, 4, 1, 7, 6, 3, 3, 3, 4, 5, 8, 2, 4, 4, 6, 3, 4, 5, 10, 4, 3, 7, 5, 2, 3, 5, 3, 5, 5, 3, 5, 4, 6, 3, 3, 4, 9, 4, 5, 3, 4, 8, 5, 4, 5, 4, 5, 6, 4, 3, 3, 2, 6, 4, 5, 5, 6, 7, 4, 3, 3, 3, 6, 2, 3, 6, 5, 2, 2, 3, 3, 5, 4, 6, 5, 3, 6, 4, 7, 3, 4, 4, 5, 3, 4, 3, 5, 3, 9, 3, 3, 3, 2, 4, 11, 5, 4, 6, 4, 3, 5, 9, 2, 3, 3, 5, 4, 5, 3, 6, 3, 3, 5, 3, 5, 4, 4, 5, 5, 3, 3, 2, 3, 7, 3, 4, 5, 4, 6, 3, 4, 3, 6, 3, 3, 7, 5, 5, 5, 2, 4, 4, 5, 4, 2, 4, 3, 8, 5, 3, 4, 6, 4, 7, 4, 3, 5, 5, 5, 4, 3, 3, 8, 5, 6, 3, 2, 8, 3, 8, 7, 4, 2, 5, 2, 7, 3, 4, 6, 6, 3, 5, 5, 2, 9, 7, 5, 5, 5, 4, 3, 7, 6, 4, 3, 6, 4, 4, 4, 9, 2, 6, 2, 5, 6, 6, 3, 6, 6, 3, 4, 2, 5, 2, 8, 2, 7, 4, 3, 10, 4, 5, 3, 8, 7, 2, 2, 9, 3, 5, 3, 8, 6, 3, 6, 4, 4, 3, 3, 5, 2, 4, 6, 4, 6, 3, 4, 3, 6, 3, 7, 4, 3, 6, 3, 4, 4, 4, 5, 4, 5, 3, 5, 5, 4, 5, 6, 2, 2, 5, 3, 3, 2, 3, 6, 7, 5, 4, 4, 4, 3, 7, 5, 6, 3, 5, 2, 3, 3, 5, 2, 8, 5, 8, 7, 4, 4, 3, 3, 4, 5, 4, 4, 3, 2, 5, 4, 3, 5, 8, 1, 6, 4, 7, 5, 2, 5, 2, 3, 8, 5, 4, 5, 8, 3, 2, 5, 6, 2, 3, 6, 4, 2, 3, 4, 3, 6, 3, 7, 4, 8, 5, 5, 2, 5, 5, 5, 5, 7, 3, 8, 4, 5, 2, 6, 10, 3, 2, 5, 8, 6, 6, 7, 5, 4, 4, 8, 4, 4, 6, 4, 3, 5, 3, 5, 4, 5, 9, 3, 3, 5, 6, 7, 2, 3, 5, 6, 4, 5, 4, 6, 6, 3, 4, 3, 6, 4, 9, 4, 5, 8, 3, 2, 2, 3, 5, 4, 4, 2, 4, 3, 3, 5, 7, 6, 9, 5, 4, 7, 4, 3, 4, 3, 4, 2, 6, 5, 4, 6, 4, 4, 5, 2, 5, 7, 6, 3, 6, 4, 4, 2, 6, 4, 4, 3, 6, 5, 5, 8, 4, 7, 3, 6, 5, 3, 2, 5, 4, 3, 4, 4, 4, 5, 5, 4, 5, 3, 4, 2, 4, 7, 3, 5, 7, 4, 8, 3, 6, 3, 2, 2, 4, 4, 5, 4, 2, 3, 7, 4, 4, 5, 4, 3, 7, 7, 3, 5, 6, 4, 5, 6, 5, 5, 4, 5, 4, 4, 3, 2, 3, 11, 5, 7, 7, 5, 4, 2, 6, 4, 3, 5, 4, 4, 8, 4, 3, 2, 4, 6, 3, 4, 4, 7, 6, 4, 4, 3, 3, 2, 5, 2, 3, 7, 4, 3, 8, 8, 5, 6, 5, 3, 5, 6, 4, 4, 5, 2, 2, 3, 4, 3, 3, 4, 3, 2, 3, 4, 4, 9, 4, 2, 6, 5, 4, 4, 4, 6, 3, 4, 5, 4, 8, 3, 4, 2, 2, 6, 2, 4, 3, 5, 5, 4, 4, 9, 2, 4, 7, 2, 4, 3, 7, 6, 3, 2, 9, 1, 5, 4, 3, 6, 4, 6, 3, 2, 3, 3, 3, 9, 5, 3, 4, 4, 3, 4, 6, 8, 6, 4, 3, 8, 4, 4, 4, 10, 2, 3, 4, 4, 4, 7, 3, 4, 4, 3, 5, 5, 6, 5, 5, 2, 4, 6, 6, 2, 4, 5, 5, 6, 7, 10, 8, 4, 5, 4, 5, 4, 5, 7, 8, 3, 3, 7, 3, 2, 5, 5, 2, 4, 8, 2, 3, 3, 6, 6, 5, 3, 9, 5, 2, 4, 2, 3, 2, 4, 7, 5, 2, 4, 5, 2, 3, 5, 3, 2, 4, 2, 3, 4, 6, 4, 4, 8, 3, 4, 7, 4, 3, 4, 3, 3, 6, 3, 5, 2, 6, 2, 2, 2, 5, 2, 5, 4, 5, 3, 3, 4, 4, 4, 5, 5, 3, 7, 3, 4, 4, 3, 4, 8, 4, 4, 8, 5, 5, 6, 3, 5, 4, 4, 4, 2, 4, 5, 3, 3, 4, 4, 2, 3, 2, 2, 2, 2, 7, 3, 2, 3, 3, 3, 3, 5, 5, 3, 2, 2, 6, 5, 4, 3, 8, 4, 6, 6, 5, 6, 5, 2, 4, 3, 4, 4, 7, 4, 2, 8, 4, 4, 3, 6, 4, 4, 5, 3, 6, 5, 9, 6, 5, 2, 3, 7, 3, 3, 4, 4, 4, 3, 5, 5, 2, 4, 3, 2, 5, 6, 4, 3, 3, 5, 9, 8, 4, 3, 6, 9, 4, 2, 7, 5, 5, 4, 9, 4, 3, 5, 5, 6, 7, 5, 8, 5, 7, 2, 3, 2, 5, 9, 4, 3, 6, 8, 7, 3, 2, 3, 2, 6, 4, 4, 5, 4, 5, 4, 3, 5, 7, 8, 5, 3, 4, 4, 4, 2, 3, 4, 3, 8, 6, 3, 2, 4, 6, 7, 4, 3, 5, 3, 2, 6, 5, 3, 4, 2, 3, 8, 4, 5, 4, 3, 5, 4, 4, 2, 2, 3, 2, 3, 6, 4, 3, 3, 4, 3, 5, 4, 2, 4, 3, 6, 6, 6, 4, 6, 2, 6, 2, 4, 6, 4, 3, 3, 2, 7, 6, 4, 2, 2, 5, 2, 4, 4, 4, 5, 5, 9, 4, 4, 3, 4, 8, 4, 4, 7, 6, 7, 4, 3, 3, 8, 3, 4, 6, 4, 3, 7, 7, 2, 3, 4, 7, 3, 4, 3, 7, 3, 6, 2, 4, 3, 5, 2, 8, 3, 8, 7, 6, 5, 2, 6, 4, 8, 2, 3, 4, 2, 7, 5, 3, 4, 4, 4, 2, 3, 5, 4, 6, 2, 3, 4, 3, 2, 9, 4, 8, 2, 4, 7, 5, 5, 7, 8, 7, 6, 2, 3, 5, 4, 4, 5, 3, 3, 6, 2, 6, 3, 7, 3, 2, 9, 7, 5, 4, 4, 5, 6, 2, 4, 5, 6, 5, 4, 3, 2, 4, 3, 5, 7, 3, 3, 6, 6, 5, 5, 4, 3, 4, 4, 4, 3, 6, 6, 2, 5, 6, 5, 4, 2, 3, 4, 5, 9, 8, 5, 3, 5, 9, 7, 4, 4, 5, 3, 3, 6, 3, 3, 5, 2, 2, 3, 3, 3, 4, 2, 4, 5, 4, 4, 3, 7, 6, 4, 4, 5, 5, 4, 4, 4, 3, 3, 3, 5, 6, 5, 5, 5, 4, 8, 6, 3, 2, 4, 3, 3, 8, 4, 2, 3, 2, 2, 3, 6, 3, 6, 9, 5, 2, 6, 6, 3, 9, 4, 2, 5, 4, 2, 3, 3, 2, 5, 3, 8, 2, 8, 7, 5, 2, 3, 4, 6, 3, 4, 3, 6, 4, 4, 4, 4, 3, 3, 4, 3, 3, 4, 3, 3, 2, 4, 5, 3, 5, 4, 3, 4, 6, 3, 3, 6, 5, 4, 4, 3, 7, 5, 8, 6, 6, 3, 3, 3, 4, 4, 3, 4, 5, 2, 4, 3, 5, 4, 6, 3, 5, 3, 3, 5, 5, 5, 4, 5, 4, 2, 6, 6, 8, 4, 3, 3, 4, 3, 4, 4, 3, 5, 6, 3, 7, 4, 4, 2, 2, 4, 5, 3, 4, 3, 3, 4, 4, 4, 2, 4, 4, 4, 2, 7, 5, 3, 5, 7, 3, 3, 2, 3, 3, 7, 3, 3, 6, 5, 4, 3, 8, 3, 5, 6, 14, 4, 6, 4, 3, 4, 5, 4, 11, 5, 3, 6, 4, 3, 7, 6, 5, 2, 6, 5, 4, 4, 4, 2, 2, 3, 6, 5, 5, 4, 5, 2, 6, 2, 2, 3, 5, 5, 3, 3, 10, 3, 3, 5, 3, 3, 3, 2, 4, 4, 4, 5, 3, 5, 4, 8, 6, 2, 6, 2, 6, 3, 6, 5, 3, 5, 4, 6, 5, 3, 3, 4, 4, 7, 2, 4, 4, 4, 5, 3, 4, 3, 4, 3, 5, 6, 3, 2, 2, 5, 8, 3, 4, 2, 5, 2, 4, 5, 5, 5, 3, 4, 5, 4, 6, 7, 6, 5, 5, 2, 6, 9, 6, 4, 7, 2, 8, 6, 7, 6, 3, 4, 5, 3, 1, 4, 7, 6, 7, 6, 4, 4, 3, 4, 5, 2, 4, 8, 2, 5, 4, 7, 5, 3, 2, 3, 9, 8, 3, 4, 4, 2, 4, 5, 5, 4, 7, 5, 4, 4, 4, 7, 6, 4, 3, 5, 4, 3, 4, 7, 6, 2, 3, 4, 5, 7, 5, 3, 3, 7, 9, 3, 4, 4, 4, 9, 5, 4, 3, 3, 2, 4, 5, 5, 3, 4, 4, 5, 5, 4, 2, 3, 4, 3, 4, 5, 4, 2, 5, 9, 5, 4, 6, 4, 2, 4, 3, 5, 3, 4, 6, 6, 7, 3, 4, 6, 9, 4, 4, 9, 5, 3, 3, 4, 2, 3, 6, 2, 5, 3, 7, 4, 5, 4, 4, 4, 5, 4, 5, 7, 2, 9, 7, 3, 5, 5, 4, 3, 5, 3, 2, 4, 2, 7, 3, 2, 4, 6, 4, 4, 5, 3, 2, 4, 4, 3, 5, 6, 4, 3, 3, 7, 8, 6, 5, 4, 4, 5, 2, 6, 8, 7, 5, 4, 3, 5, 6, 9, 7, 4, 6, 3, 6, 2, 3, 6, 4, 6, 5, 3, 5, 3, 6, 4, 6, 6, 3, 4, 3, 6, 4, 2, 6, 4, 3, 2, 3, 6, 7, 8, 4, 4, 5, 5, 5, 5, 2, 6, 6, 5, 3, 6, 4, 3, 2, 4, 9, 5, 4, 5, 5, 5, 2, 4, 7, 4, 10, 4, 4, 3, 4, 4, 4, 5, 5, 7, 4, 3, 3, 4, 5, 2, 4, 3, 5, 2, 4, 3, 4, 5, 3, 3, 4, 4, 6, 5, 4, 3, 2, 3, 2, 2, 4, 5, 2, 4, 5, 3, 8, 3, 6, 4, 2, 4, 2, 3, 2, 2, 9, 6, 8, 2, 5, 9, 3, 4, 4, 4, 3, 4, 5, 7, 6, 2, 3, 3, 3, 5, 2, 2, 5, 4, 2, 5, 7, 7, 3, 5, 6, 5, 4, 4, 5, 2, 9, 2, 3, 3, 5, 3, 4, 6, 2, 4, 5, 4, 3, 4, 6, 2, 6, 7, 4, 3, 6, 3, 7, 4, 7, 2, 6, 6, 2, 4, 4, 5, 8, 2, 4, 4, 4, 4, 6, 4, 6, 5, 9, 2, 7, 5, 5, 4, 2, 4, 3, 9, 2, 9, 2, 5, 4, 7, 5, 2, 4, 3, 6, 5, 3, 4, 3, 6, 5, 3, 8, 7, 2, 3, 3, 5, 5, 2, 4, 4, 4, 4, 3, 4, 4, 5, 4, 4, 9, 3, 5, 3, 5, 3, 2, 2, 3, 4, 4, 5, 5, 4, 4, 5, 7, 6, 3, 9, 5, 3, 4, 2, 6, 3, 4, 4, 8, 5, 8, 5, 3, 2, 3, 3, 4, 4, 4, 4, 8, 7, 7, 3, 3, 2, 4, 3, 5, 5, 3, 7, 3, 6, 5, 5, 7, 4, 5, 5, 2, 4, 6, 5, 3, 5, 5, 6, 2, 4, 5, 6, 4, 3, 6, 4, 4, 6, 6, 7, 5, 6, 4, 2, 4, 7, 4, 4, 5, 3, 9, 4, 4, 5, 4, 3, 4, 5, 2, 4, 8, 3, 4, 3, 6, 4, 2, 4, 5, 4, 5, 3, 3, 4, 3, 5, 8, 4, 4, 2, 3, 3, 4, 4, 2, 3, 4, 5, 3, 3, 2, 4, 4, 3, 3, 3, 6, 3, 5, 2, 4, 3, 3, 6, 2, 4, 3, 4, 4, 3, 3, 4, 7, 7, 4, 5, 3, 6, 8, 7, 4, 4, 4, 7, 8, 4, 6, 3, 2, 4, 3, 2, 6, 2, 8, 2, 3, 12, 7, 5, 5, 2, 4, 6, 5, 8, 7, 4, 4, 3, 5, 4, 3, 3, 2, 2, 4, 6, 2, 7, 7, 2, 6, 3, 3, 2, 5, 3, 2, 2, 5, 6, 5, 6, 2, 3, 2, 3, 6, 3, 4, 7, 6, 5, 5, 8, 4, 3, 2, 5, 5, 4, 3, 2, 5, 2, 4, 3, 3, 2, 3, 5, 6, 6, 4, 9, 5, 7, 3, 4, 4, 2, 6, 6, 4, 9, 8, 2, 6, 3, 2, 5, 3, 5, 6, 4, 2, 4, 9, 4, 5, 3, 2, 7, 7, 6, 6, 6, 2, 2, 4, 4, 5, 5, 6, 3, 6, 5, 4, 4, 4, 2, 3, 2, 7, 2, 4, 3, 4, 4, 4, 4, 4, 2, 3, 7, 2, 6, 5, 9, 5, 2, 4, 6, 4, 4, 4, 3, 4, 3, 4, 5, 3, 5, 5, 4, 6, 4, 4, 5, 4, 6, 8, 3, 4, 4, 4, 2, 3, 8, 2, 2, 6, 4, 7, 6, 6, 6, 6, 5, 4, 5, 7, 6, 4, 7, 3, 5, 6, 3, 4, 7, 3, 6, 3, 8, 6, 9, 8, 3, 3, 7, 8, 6, 3, 3, 4, 6, 4, 4, 2, 6, 5, 8, 7, 4, 2, 9, 4, 6, 3, 5, 3, 5, 2, 3, 7, 11, 3, 4, 8, 4, 5, 4, 5, 6, 4, 5, 4, 7, 2, 8, 2, 4, 5, 3, 4, 4, 3, 9, 2, 4, 4, 4, 3, 4, 3, 6, 5, 2, 6, 4, 2, 3, 3, 6, 4, 4, 3, 4, 5, 2, 4, 2, 3, 4, 3, 6, 4, 5, 4, 4, 3, 6, 2, 3, 6, 2, 2, 5, 2, 6, 5, 4, 8, 5, 7, 3, 6, 4, 5, 2, 9, 3, 4, 5, 4, 3, 3, 4, 5, 3, 5, 4, 3, 2, 2, 5, 6, 4, 3, 4, 2, 6, 4, 4, 5, 2, 4, 6, 2, 2, 4, 6, 4, 4, 8, 6, 3, 2, 8, 2, 3, 5, 4, 3, 6, 4, 4, 6, 5, 2, 6, 3, 2, 4, 5, 9, 3, 5, 4, 4, 3, 4, 5, 4, 3, 3, 2, 3, 2, 7, 3, 3, 3, 6, 4, 6, 2, 2, 4, 4, 3, 3, 4, 4, 8, 4, 6, 3, 6, 8, 2, 5, 3, 2, 2, 5, 5, 4, 4, 4, 2, 6, 6, 5, 3, 4, 5, 6, 3, 2, 5, 7, 4, 7, 3, 2, 3, 6, 3, 6, 6, 5, 5, 3, 6, 5, 2, 4, 4, 2, 5, 5, 2, 2, 2, 8, 3, 4, 6, 4, 3, 3, 5, 5, 7, 5, 5, 4, 9, 2, 3, 6, 4, 6, 5, 6, 5, 3, 3, 3, 10, 2, 4, 3, 4, 3, 5, 3, 4, 3, 3, 6, 2, 6, 8, 7, 4, 3, 4, 8, 6, 3, 5, 4, 2, 5, 3, 7, 4, 2, 5, 2, 4, 3, 5, 7, 3, 5, 4, 6, 7, 7, 4, 8, 3, 2, 4, 5, 9, 3, 5, 4, 3, 5, 2, 5, 8, 5, 5, 3, 2, 4, 3, 5, 5, 7, 6, 2, 6, 7, 7, 2, 5, 2, 4, 3, 3, 6, 4, 5, 6, 4, 4, 5, 6, 4, 4, 4, 2, 6, 3, 3, 4, 5, 3, 7, 6, 2, 4, 6, 6, 3, 3, 5, 7, 2, 4, 7, 2, 3, 5, 7, 3, 6, 4, 3, 5, 4, 2, 3, 3, 3, 3, 5, 4, 6, 7, 4, 8, 5, 7, 3, 3, 6, 7, 5, 6, 4, 4, 4, 5, 4, 6, 2, 6, 6, 4, 2, 4, 3, 3, 5, 4, 6, 5, 4, 4, 2, 7, 8, 6, 6, 5, 5, 6, 3, 3, 7, 3, 4, 8, 6, 6, 5, 6, 6, 3, 8, 3, 3, 5, 3, 5, 2, 4, 3, 2, 4, 5, 6, 3, 4, 2, 2, 4, 7, 4, 5, 6, 4, 6, 2, 4, 3, 5, 2, 7, 5, 5, 3, 3, 2, 6, 5, 6, 7, 6, 2, 6, 6, 5, 9, 5, 4, 4, 5, 2, 8, 6, 2, 3, 4, 11, 7, 9, 4, 3, 6, 5, 4, 3, 4, 4, 4, 2, 4, 5, 4, 5, 2, 2, 5, 2, 4, 3, 4, 6, 4, 8, 6, 6, 4, 3, 6, 3, 6, 8, 3, 6, 7, 6, 5, 2, 5, 2, 3, 6, 7, 3, 8, 4, 4, 5, 5, 3, 5, 5, 3, 5, 6, 4, 5, 5, 4, 5, 5, 4, 6, 6, 3, 2, 4, 4, 4, 4, 3, 5, 3, 5, 6, 4, 7, 6, 5, 4, 3, 2, 3, 4, 3, 4, 5, 4, 5, 4, 3, 9, 3, 2, 6, 3, 5, 4, 5, 6, 6, 3, 2, 4, 9, 4, 3, 4, 3, 9, 5, 6, 5, 4, 2, 5, 4, 3, 5, 2, 4, 4, 2, 9, 4, 3, 3, 6, 2, 6, 6, 2, 4, 2, 5, 3, 5, 7, 4, 6, 3, 8, 5, 2, 4, 5, 2, 4, 3, 4, 5, 5, 7, 6, 4, 6, 8, 4, 4, 8, 5, 3, 4, 4, 7, 7, 10, 4, 4, 4, 4, 5, 6, 4, 3, 8, 7, 4, 6, 4, 4, 4, 4, 2, 5, 3, 5, 5, 3, 6, 3, 5, 4, 6, 4, 5, 5, 2, 7, 6, 4, 5, 3, 5, 2, 7, 2, 4, 2, 4, 2, 4, 5, 7, 3, 3, 5, 8, 4, 3, 6, 3, 6, 3, 5, 5, 6, 2, 7, 4, 4, 4, 4, 4, 4, 10, 3, 5, 4, 3, 4, 6, 3, 9, 4, 2, 2, 7, 2, 4, 4, 3, 4, 3, 8, 3, 9, 4, 4, 4, 4, 3, 2, 4, 8, 3, 5, 4, 7, 3, 5, 2, 9, 2, 3, 5, 5, 4, 2, 4, 3, 3, 3, 3, 3, 4, 2, 2, 7, 2, 4, 4, 3, 2, 4, 4, 6, 2, 4, 5, 4, 6, 3, 6, 3, 5, 5, 4, 3, 6, 4, 7, 4, 9, 5, 2, 4, 4, 2, 6, 5, 4, 2, 4, 8, 5, 5, 5, 4, 7, 4, 4, 5, 4, 7, 5, 6, 5, 4, 4, 5, 3, 6, 4, 4, 4, 4, 3, 4, 7, 5, 3, 7, 4, 5, 7, 5, 3, 4, 2, 10, 4, 3, 2, 5, 2, 4, 5, 2, 8, 4, 8, 5, 8, 6, 4, 5, 8, 2, 7, 2, 4, 3, 4, 3, 4, 5, 8, 9, 5, 2, 4, 3, 5, 6, 7, 3, 2, 4, 8, 10, 3, 6, 5, 4, 6, 3, 5, 7, 4, 3, 5, 4, 2, 4, 5, 3, 4, 5, 6, 4, 4, 5, 5, 5, 2, 5, 7, 8, 2, 4, 4, 4, 2, 4, 4, 2, 2, 3, 2, 6, 6, 4, 4, 4, 8, 4, 8, 2, 3, 2, 4, 5, 2, 6, 4, 3, 6, 6, 2, 6, 7, 4, 5, 2, 10, 6, 6, 4, 5, 2, 4, 2, 2, 5, 2, 2, 3, 2, 4, 5, 3, 4, 3, 3, 5, 4, 5, 5, 4, 5, 4, 6, 3, 6, 4, 4, 2, 2, 4, 2, 5, 5, 7, 8, 9, 9, 5, 5, 7, 4, 5, 5, 5, 6, 5, 4, 5, 7, 4, 2, 4, 7, 5, 4, 4, 3, 4, 4, 7, 4, 3, 3, 7, 4, 3, 2, 3, 6, 4, 4, 3, 2, 4, 4, 4, 3, 5, 9, 5, 5, 4, 6, 4, 4, 5, 3, 3, 3, 3, 4, 5, 5, 3, 4, 5, 4, 3, 2, 2, 4, 6, 2, 5, 5, 5, 5, 8, 5, 3, 3, 2, 4, 6, 4, 4, 3, 4, 3, 3, 5, 4, 4, 5, 4, 8, 6, 5, 3, 3, 2, 5, 7, 2, 4, 2, 3, 4, 2, 4, 7, 6, 5, 4, 2, 6, 5, 2, 6, 3, 7, 5, 6, 5, 3, 6, 6, 4, 3, 3, 5, 4, 4, 3, 4, 4, 4, 3, 6, 4, 6, 4, 4, 3, 6, 3, 5, 2, 3, 3, 5, 3, 2, 2, 4, 3, 3, 5, 4, 5, 8, 3, 4, 6, 6, 5, 4, 4, 6, 4, 4, 8, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 6, 2, 5, 5, 7, 3, 3, 5, 4, 6, 3, 5, 4, 5, 4, 6, 5, 6, 2, 5, 3, 4, 7, 5, 7, 4, 4, 4, 9, 5, 5, 7, 2, 6, 3, 9, 4, 3, 7, 4, 5, 3, 4, 4, 6, 4, 6, 8, 5, 7, 4, 3, 9, 5, 4, 5, 4, 6, 4, 3, 2, 6, 7, 5, 5, 2, 3, 6, 6, 3, 4, 6, 2, 5, 5, 3, 3, 6, 4, 4, 4, 5, 6, 3, 5, 5, 5, 5, 2, 5, 3, 4, 2, 5, 3, 7, 7, 4, 5, 6, 3, 3, 7, 2, 6, 8, 6, 5, 4, 3, 4, 4, 2, 3, 5, 2, 3, 7, 3, 4, 5, 5, 10, 6, 2, 7, 5, 6, 7, 5, 7, 3, 2, 4, 3, 5, 6, 2, 3, 3, 4, 7, 3, 4, 5, 2, 3, 5, 2, 7, 2, 7, 4, 4, 2, 3, 3, 4, 3, 7, 2, 5, 5, 3, 6, 2, 3, 2, 4, 6, 6, 3, 3, 3, 6, 6, 4, 6, 3, 7, 6, 4, 4, 3, 5, 4, 4, 2, 7, 6, 5, 4, 7, 8, 5, 3, 3, 3, 4, 3, 4, 4, 6, 5, 2, 3, 5, 4, 3, 5, 4, 5, 7, 4, 4, 3, 2, 2, 2, 2, 4, 3, 5, 4, 3, 3, 4, 3, 2, 2, 2, 4, 4, 2, 4, 4, 4, 3, 3, 5, 4, 2, 4, 6, 3, 2, 3, 2, 8, 5, 4, 5, 5, 3, 2, 3, 2, 4, 4, 9, 2, 5, 8, 3, 4, 6, 4, 2, 4, 5, 3, 3, 5, 7, 4, 4, 4, 5, 2, 4, 2, 3, 6, 5, 6, 6, 3, 4, 6, 3, 6, 4, 2, 3, 4, 2, 3, 2, 7, 3, 3, 6, 7, 8, 5, 4, 5, 3, 4, 5, 2, 7, 6, 5, 8, 4, 3, 3, 6, 6, 3, 3, 2, 3, 5, 4, 7, 3, 8, 5, 2, 5, 8, 9, 4, 3, 4, 4, 5, 3, 7, 3, 6, 7, 4, 3, 4, 2, 4, 3, 9, 6, 7, 3, 3, 2, 9, 8, 7, 6, 3, 5, 5, 5, 2, 3, 7, 3, 9, 6, 5, 5, 3, 4, 4, 2, 6, 3, 4, 4, 2, 4, 3, 3, 5, 9, 2, 7, 3, 3, 3, 2, 6, 2, 3, 2, 4, 5, 11, 3, 2, 4, 9, 3, 9, 5, 4, 3, 2, 2, 2, 4, 5, 8, 4, 6, 4, 5, 4, 4, 6, 4, 8, 2, 7, 5, 5, 10, 5, 7, 4, 3, 4, 2, 4, 4, 4, 6, 4, 2, 3, 9, 3, 5, 6, 4, 2, 6, 3, 2, 5, 3, 2, 3, 3, 4, 9, 4, 5, 5, 5, 7, 5, 2, 4, 5, 9, 3, 6, 3, 4, 2, 6, 3, 4, 5, 3, 8, 4, 4, 5, 4, 5, 3, 5, 4, 4, 2, 5, 7, 8, 2, 5, 2, 4, 2, 5, 6, 2, 4, 5, 3, 4, 2, 3, 5, 5, 4, 4, 2, 5, 7, 6, 6, 3, 7, 3, 4, 5, 7, 7, 9, 5, 7, 5, 3, 4, 6, 3, 3, 2, 6, 3, 6, 7, 2, 5, 2, 4, 2, 4, 6, 6, 2, 3, 8, 5, 3, 4, 4, 3, 7, 3, 4, 4, 4, 4, 5, 5, 2, 3, 7, 4, 4, 4, 5, 2, 4, 5, 6, 8, 4, 8, 4, 5, 5, 5, 3, 5, 7, 7, 2, 5, 5, 2, 4, 3, 4, 2, 4, 3, 5, 3, 3, 10, 5, 10, 5, 4, 7, 4, 4, 4, 3, 7, 3, 5, 6, 4, 5, 3, 5, 9, 2, 3, 3, 2, 3, 3, 4, 3, 2, 3, 2, 2, 4, 3, 5, 4, 4, 3, 2, 4, 3, 3, 4, 3, 4, 8, 5, 3, 3, 3, 5, 5, 5, 3, 4, 5, 4, 5, 6, 2, 5, 6, 5, 8, 3, 5, 4, 3, 6, 3, 6, 5, 8, 4, 6, 4, 4, 5, 4, 2, 3, 8, 3, 4, 7, 6, 9, 3, 8, 4, 7, 6, 2, 5, 2, 4, 4, 3, 3, 3, 10, 7, 3, 6, 2, 3, 4, 5, 7, 5, 5, 6, 2, 6, 6, 3, 8, 2, 2, 8, 7, 2, 5, 4, 4, 8, 4, 3, 5, 4, 4, 6, 4, 5, 4, 6, 5, 5, 3, 3, 3, 4, 2, 6, 4, 3, 3, 9, 2, 2, 5, 7, 4, 4, 6, 3, 4, 2, 7, 4, 7, 4, 7, 4, 3, 2, 4, 5, 4, 5, 5, 5, 3, 2, 3, 4, 3, 2, 3, 7, 2, 4, 4, 4, 6, 5, 3, 5, 5, 6, 2, 5, 4, 3, 4, 2, 3, 4, 3, 2, 5, 4, 7, 5, 3, 3, 2, 4, 7, 8, 4, 4, 3, 5, 3, 5, 3, 3, 2, 4, 6, 2, 6, 8, 4, 4, 3, 6, 6, 4, 6, 4, 4, 8, 6, 2, 3, 6, 4, 6, 2, 2, 4, 4, 4, 3, 3, 6, 5, 3, 5, 2, 4, 8, 4, 4, 3, 5, 2, 3, 4, 6, 5, 3, 5, 4, 3, 7, 2, 3, 5, 5, 8, 4, 3, 4, 2, 15, 3, 2, 5, 7, 3, 3, 8, 8, 5, 4, 3, 3, 6, 5, 3, 3, 2, 5, 5, 3, 3, 4, 4, 7, 9, 2, 6, 4, 8, 3, 4, 3, 6, 5, 4, 5, 5, 4, 2, 8, 7, 5, 3, 8, 4, 5, 3, 3, 8, 6, 5, 5, 10, 6, 6, 4, 6, 4, 4, 2, 4, 9, 7, 4, 6, 3, 6, 5, 3, 3, 5, 9, 5, 2, 8, 3, 5, 3, 4, 8, 2, 2, 5, 3, 3, 5, 7, 3, 4, 3, 10, 2, 4, 8, 4, 3, 4, 3, 2, 3, 4, 6, 2, 3, 2, 3, 5, 4, 4, 11, 8, 8, 4, 3, 4, 6, 4, 3, 5, 5, 8, 3, 9, 3, 3, 4, 3, 4, 3, 3, 2, 2, 2, 7, 6, 7, 3, 8, 4, 5, 2, 3, 5, 4, 2, 2, 6, 3, 4, 3, 4, 5, 3, 2, 2, 5, 7, 3, 9, 6, 2, 9, 4, 4, 3, 5, 3, 4, 2, 3, 3, 4, 2, 4, 5, 4, 5, 4, 4, 4, 3, 6, 3, 9, 8, 3, 2, 4, 6, 6, 3, 4, 4, 5, 4, 7, 7, 3, 5, 4, 7, 3, 4, 8, 4, 5, 3, 4, 9, 4, 3, 3, 6, 3, 4, 5, 5, 7, 6, 5, 6, 5, 4, 2, 3, 3, 4, 4, 6, 4, 3, 4, 3, 4, 2, 2, 2, 5, 3, 7, 4, 6, 10, 5, 8, 4, 3, 4, 6, 4, 6, 3, 8, 8, 3, 8, 8, 3, 4, 3, 7, 3, 4, 6, 8, 5, 4, 5, 2, 2, 5, 3, 4, 7, 4, 5, 3, 3, 3, 7, 4, 9, 6, 3, 3, 4, 3, 2, 6, 7, 5, 2, 5, 5, 6, 4, 2, 2, 6, 3, 5, 5, 6, 4, 8, 2, 3, 4, 3, 2, 4, 7, 4, 2, 7, 4, 3, 4, 5, 4, 7, 4, 6, 2, 3, 4, 4, 7, 6, 4, 4, 2, 2, 5, 2, 6, 6, 4, 8, 7, 4, 2, 2, 4, 6, 9, 3, 4, 7, 9, 4, 5, 3, 5, 5, 8, 2, 7, 8, 5, 6, 3, 5, 3, 3, 2, 4, 4, 7, 2, 6, 3, 3, 5, 3, 8, 3, 3, 5, 6, 7, 3, 4, 6, 4, 3, 8, 5, 2, 6, 9, 6, 4, 2, 4, 9, 5, 5, 6, 5, 3, 4, 2, 6, 6, 7, 4, 5, 5, 4, 4, 8, 2, 4, 6, 6, 6, 6, 6, 6, 6, 2, 5, 2, 2, 5, 3, 5, 3, 4, 2, 6, 3, 5, 5, 6, 5, 3, 5, 4, 4, 5, 3, 2, 6, 9, 4, 7, 5, 2, 2, 4, 2, 4, 7, 8, 5, 2, 5, 6, 7, 3, 2, 5, 4, 3, 7, 7, 7, 4, 2, 3, 5, 3, 7, 3, 5, 3, 2, 5, 5, 4, 3, 4, 2, 4, 2, 3, 6, 2, 2, 8, 6, 6, 5, 4, 6, 2, 7, 3, 6, 4, 7, 4, 2, 4, 2, 6, 4, 3, 3, 6, 8, 6, 3, 5, 3, 2, 4, 8, 8, 11, 4, 8, 9, 7, 8, 4, 5, 2, 2, 4, 3, 4, 4, 7, 4, 7, 5, 5, 6, 4, 2, 5, 7, 2, 2, 8, 6, 6, 6, 3, 4, 7, 3, 3, 4, 3, 4, 5, 3, 5, 6, 4, 2, 6, 4, 3, 2, 4, 2, 6, 3, 3, 3, 10, 4, 4, 4, 3, 3, 4, 4, 5, 3, 5, 5, 3, 5, 3, 2, 4, 3, 3, 2, 2, 6, 6, 2, 3, 6, 7, 8, 3, 4, 2, 4, 4, 6, 4, 3, 3, 4, 2, 5, 7, 2, 4, 7, 2, 4, 2, 8, 4, 4, 7, 4, 4, 8, 4, 5, 5, 4, 4, 2, 4, 5, 6, 3, 5, 8, 4, 5, 2, 6, 10, 6, 3, 3, 5, 4, 4, 3, 4, 6, 3, 4, 4, 4, 8, 4, 2, 2, 7, 3, 9, 5, 5, 4, 3, 5, 4, 4, 2, 5, 3, 4, 4, 4, 4, 7, 5, 6, 3, 4, 3, 4, 3, 3, 6, 5, 4, 6, 5, 3, 3, 5, 6, 3, 7, 4, 9, 5, 5, 6, 4, 5, 2, 3, 4, 2, 4, 6, 3, 4, 3, 10, 7, 6, 5, 3, 2, 5, 3, 4, 10, 4, 6, 4, 5, 2, 4, 3, 3, 4, 3, 5, 6, 4, 6, 4, 4, 5, 4, 8, 5, 3, 4, 7, 7, 4, 4, 2, 5, 3, 5, 3, 3, 4, 7, 3, 5, 5, 2, 3, 6, 9, 4, 3, 4, 2, 2, 10, 3, 6, 7, 3, 4, 6, 3, 8, 4, 4, 6, 4, 5, 6, 3, 2, 6, 3, 4, 5, 9, 4, 4, 4, 4, 4, 6, 6, 3, 4, 7, 4, 3, 2, 4, 5, 3, 5, 3, 5, 3, 3, 2, 6, 5, 8, 7, 4, 2, 4, 5, 5, 5, 7, 7, 6, 7, 2, 4, 5, 3, 3, 4, 3, 7, 7, 4, 5, 4, 2, 7, 6, 3, 8, 6, 4, 3, 3, 3, 7, 2, 6, 8, 6, 4, 7, 3, 5, 4, 3, 2, 6, 7, 5, 4, 8, 7, 7, 4, 3, 4, 4, 4, 3, 5, 4, 3, 2, 6, 2, 5, 4, 4, 3, 2, 7, 4, 6, 4, 2, 7, 3, 3, 5, 6, 4, 5, 2, 5, 6, 5, 3, 5, 4, 6, 3, 12, 6, 2, 4, 5, 4, 4, 3, 6, 2, 7, 7, 4, 3, 4, 2, 7, 4, 4, 7, 3, 6, 4, 2, 4, 2, 5, 4, 5, 6, 7, 5, 3, 3, 3, 5, 4, 4, 3, 6, 5, 5, 7, 5, 7, 6, 5, 3, 3, 9, 3, 8, 4, 2, 5, 5, 4, 3, 5, 5, 7, 3, 4, 3, 3, 3, 3, 4, 9, 3, 3, 7, 4, 6, 4, 4, 3, 5, 6, 5, 3, 8, 5, 4, 3, 2, 2, 3, 5, 3, 5, 7, 4, 4, 3, 9, 5, 7, 3, 2, 7, 11, 7, 4, 8, 11, 6, 3, 4, 6, 7, 5, 4, 3, 5, 3, 2, 3, 3, 5, 4, 7, 5, 8, 5, 6, 5, 4, 3, 6, 6, 2, 2, 8, 4, 4, 3, 4, 6, 4, 4, 8, 4, 8, 8, 6, 6, 7, 4, 8, 8, 2, 4, 4, 3, 5, 5, 4, 5, 2, 3, 3, 3, 4, 4, 6, 4, 3, 4, 6, 6, 2, 7, 6, 5, 2, 2, 3, 5, 6, 6, 6, 4, 4, 3, 4, 7, 2, 7, 5, 5, 4, 6, 4, 3, 2, 5, 8, 5, 7, 3, 3, 3, 6, 2, 2, 4, 6, 6, 2, 4, 4, 2, 5, 8, 4, 4, 3, 2, 3, 4, 8, 7, 4, 2, 8, 3, 2, 5, 5, 6, 5, 4, 6, 3, 3, 4, 5, 7, 4, 3, 3, 5, 5, 4, 5, 2, 7, 7, 6, 2, 5, 3, 2, 4, 2, 4, 2, 5, 6, 5, 2, 8, 1, 8, 4, 2, 4, 2, 3, 5, 8, 4, 4, 7, 2, 3, 6, 5, 2, 4, 4, 2, 5, 3, 2, 5, 2, 5, 2, 5, 7, 5, 4, 4, 4, 4, 2, 5, 3, 2, 3, 2, 3, 3, 6, 3, 4, 5, 7, 4, 2, 8, 8, 3, 3, 3, 7, 7, 4, 4, 9, 4, 6, 9, 2, 7, 3, 8, 4, 2, 3, 5, 4, 5, 6, 5, 4, 4, 5, 3, 4, 4, 3, 5, 3, 3, 3, 3, 5, 4, 3, 3, 4, 4, 5, 2, 3, 2, 6, 3, 6, 6, 4, 5, 3, 5, 3, 5, 3, 2, 4, 7, 2, 4, 6, 4, 2, 4, 10, 3, 9, 3, 2, 5, 5, 4, 5, 4, 4, 7, 4, 4, 5, 9, 6, 10, 8, 4, 3, 4, 3, 2, 4, 9, 2, 3, 3, 8, 2, 6, 9, 3, 6, 8, 7, 6, 8, 7, 7, 3, 9, 5, 5, 5, 4, 3, 7, 8, 5, 5, 4, 3, 5, 3, 8, 3, 7, 7, 4, 5, 6, 6, 4, 6, 2, 3, 3, 3, 2, 2, 8, 4, 2, 7, 2, 4, 7, 6, 6, 6, 6, 3, 2, 6, 3, 4, 6, 2, 4, 10, 4, 2, 3, 8, 3, 2, 3, 2, 8, 5, 2, 4, 4, 2, 7, 4, 4, 5, 3, 3, 2, 4, 7, 6, 2, 6, 4, 4, 7, 2, 5, 4, 6, 4, 5, 4, 8, 6, 7, 3, 4, 4, 5, 3, 6, 3, 3, 5, 4, 5, 3, 6, 3, 3, 5, 3, 4, 7, 4, 7, 3, 3, 4, 5, 6, 4, 6, 6, 5, 3, 9, 5, 4, 4, 8, 2, 3, 3, 4, 9, 2, 4, 5, 4, 5, 3, 6, 4, 3, 4, 2, 2, 8, 2, 2, 4, 5, 3, 4, 4, 4, 3, 2, 3, 4, 5, 3, 3, 2, 4, 4, 7, 4, 2, 4, 5, 6, 7, 4, 4, 5, 9, 8, 2, 4, 10, 3, 5, 4, 5, 2, 2, 6, 4, 3, 4, 2, 4, 3, 5, 4, 6, 6, 3, 5, 4, 2, 2, 6, 2, 2, 7, 4, 3, 3, 4, 5, 6, 6, 4, 2, 5, 2, 3, 3, 5, 2, 4, 5, 3, 5, 7, 3, 4, 6, 2, 5, 6, 3, 2, 5, 4, 5, 3, 7, 7, 2, 3, 2, 2, 3, 2, 4, 2, 6, 6, 6, 3, 3, 6, 2, 2, 7, 7, 3, 2, 5, 5, 5, 4, 5, 4, 3, 6, 3, 9, 3, 6, 2, 3, 3, 8, 3, 3, 3, 5, 6, 5, 2, 3, 6, 8, 2, 2, 4, 3, 5, 8, 2, 7, 6, 6, 5, 4, 2, 5, 5, 4, 5, 3, 6, 2, 7, 6, 4, 3, 5, 4, 2, 3, 4, 4, 4, 4, 9, 6, 3, 6, 6, 4, 5, 3, 3, 4, 3, 7, 3, 3, 5, 3, 2, 2, 2, 2, 3, 5, 3, 4, 3, 4, 2, 3, 4, 6, 8, 4, 4, 5, 3, 5, 5, 4, 3, 6, 5, 3, 4, 2, 7, 2, 7, 4, 4, 4, 3, 3, 6, 6, 6, 5, 7, 3, 4, 4, 5, 4, 6, 2, 5, 9, 6, 3, 4, 2, 4, 2, 5, 3, 3, 6, 5, 5, 2, 2, 2, 3, 6, 4, 5, 4, 3, 3, 7, 8, 2, 3, 5, 8, 4, 5, 3, 2, 5, 2, 6, 3, 2, 2, 2, 6, 7, 4, 5, 4, 5, 7, 5, 3, 5, 5, 2, 3, 6, 7, 4, 4, 7, 4, 7, 5, 7, 3, 6, 7, 4, 2, 4, 4, 5, 3, 5, 5, 5, 7, 6, 5, 2, 2, 7, 8, 6, 2, 2, 2, 4, 2, 6, 4, 2, 3, 4, 7, 8, 5, 3, 6, 2, 3, 10, 6, 7, 2, 3, 3, 7, 2, 4, 7, 2, 6, 3, 5, 7, 2, 5, 2, 5, 2, 3, 5, 3, 3, 2, 6, 6, 3, 2, 3, 9, 5, 2, 2, 5, 9, 2, 3, 4, 8, 4, 5, 5, 5, 3, 6, 4, 3, 6, 4, 2, 7, 4, 2, 3, 5, 3, 2, 5, 2, 5, 3, 2, 7, 7, 9, 6, 5, 7, 4, 6, 5, 5, 3, 3, 4, 8, 2, 5, 4, 8, 7, 3, 6, 4, 4, 4, 2, 6, 3, 4, 5, 2, 2, 2, 3, 4, 5, 4, 4, 4, 7, 4, 7, 4, 4, 4, 6, 3, 4, 3, 8, 3, 3, 5, 3, 3, 3, 5, 3, 6, 3, 5, 3, 4, 7, 3, 7, 4, 3, 3, 4, 2, 7, 4, 9, 2, 8, 6, 2, 6, 7, 5, 7, 5, 4, 6, 3, 6, 2, 4, 6, 9, 3, 6, 3, 3, 3, 5, 4, 6, 2, 7, 3, 4, 9, 3, 5, 3, 3, 2, 4, 4, 9, 6, 4, 3, 7, 3, 4, 4, 8, 4, 3, 2, 2, 3, 3, 2, 4, 3, 2, 9, 5, 6, 2, 4, 4, 7, 2, 3, 3, 3, 2, 8, 6, 7, 4, 3, 6, 4, 4, 5, 3, 2, 4, 3, 4, 4, 2, 4, 5, 4, 4, 4, 3, 4, 2, 4, 4, 6, 4, 6, 8, 2, 4, 2, 2, 2, 8, 7, 5, 2, 2, 2, 3, 5, 5, 3, 3, 4, 8, 3, 5, 4, 5, 2, 2, 2, 5, 2, 3, 2, 3, 5, 2, 4, 7, 5, 5, 3, 3, 3, 4, 9, 4, 5, 4, 3, 4, 4, 3, 9, 4, 6, 7, 4, 3, 5, 4, 4, 5, 2, 6, 3, 4, 5, 4, 2, 2, 4, 4, 7, 2, 2, 3, 6, 7, 7, 2, 4, 3, 4, 4, 4, 2, 3, 3, 4, 3, 3, 3, 6, 5, 6, 8, 7, 4, 5, 3, 9, 4, 5, 5, 3, 7, 6, 4, 5, 5, 3, 5, 3, 7, 4, 3, 2, 5, 3, 4, 2, 4, 4, 3, 4, 7, 3, 5, 4, 3, 2, 3, 4, 4, 2, 3, 7, 6, 4, 3, 4, 2, 7, 3, 5, 3, 7, 6, 2, 2, 5, 4, 3, 3, 4, 3, 5, 6, 2, 4, 3, 4, 3, 4, 3, 5, 8, 2, 6, 4, 5, 4, 5, 4, 5, 5, 5, 4, 3, 4, 5, 2, 3, 3, 4, 9, 3, 2, 3, 3, 9, 8, 4, 3, 6, 4, 5, 5, 2, 2, 4, 3, 3, 9, 6, 4, 2, 7, 5, 5, 3, 5, 2, 9, 4, 4, 5, 7, 3, 5, 4, 5, 3, 6, 4, 3, 4, 3, 4, 5, 5, 4, 6, 3, 4, 6, 2, 3, 8, 7, 3, 5, 5, 4, 5, 4, 7, 6, 6, 4, 10, 5, 4, 8, 5, 4, 4, 3, 5, 5, 2, 6, 3, 4, 3, 3, 9, 7, 2, 3, 5, 3, 8, 5, 7, 8, 5, 3, 6, 6, 6, 4, 2, 3, 6, 2, 4, 5, 3, 4, 3, 4, 2, 2, 3, 4, 6, 3, 5, 3, 7, 4, 4, 6, 7, 2, 5, 4, 2, 6, 3, 6, 4, 3, 7, 2, 3, 4, 10, 2, 5, 8, 2, 6, 6, 5, 6, 3, 7, 5, 4, 3, 5, 4, 3, 6, 3, 8, 3, 4, 10, 6, 3, 4, 4, 2, 4, 3, 4, 3, 3, 6, 2, 3, 5, 4, 3, 6, 2, 7, 9, 4, 3, 4, 3, 3, 5, 4, 3, 5, 3, 4, 5, 5, 6, 7, 5, 3, 9, 3, 7, 5, 4, 2, 2, 7, 3, 4, 5, 2, 5, 2, 2, 3, 7, 3, 5, 4, 4, 8, 3, 3, 2, 6, 3, 5, 4, 4, 5, 8, 6, 7, 3, 2, 4, 4, 5, 7, 3, 6, 6, 5, 2, 6, 6, 4, 2, 6, 5, 2, 5, 5, 4, 3, 4, 2, 4, 7, 5, 4, 5, 5, 4, 6, 2, 2, 2, 4, 4, 3, 6, 7, 4, 4, 6, 3, 3, 7, 4, 5, 8, 4, 3, 9, 2, 5, 3, 8, 4, 5, 6, 4, 6, 8, 7, 5, 3, 2, 6, 4, 6, 4, 3, 4, 2, 3, 6, 4, 5, 3, 7, 7, 3, 3, 2, 5, 6, 5, 5, 4, 3, 3, 2, 4, 6, 3, 4, 2, 4, 5, 4, 9, 2, 3, 6, 2, 2, 5, 4, 3, 3, 3, 3, 4, 5, 3, 6, 3, 5, 3, 2, 6, 5, 3, 6, 6, 8, 4, 5, 2, 4, 8, 3, 7, 4, 5, 3, 6, 4, 3, 5, 7, 4, 4, 2, 5, 3, 3, 3, 5, 3, 8, 6, 2, 4, 3, 7, 2, 6, 3, 3, 5, 5, 5, 3, 4, 3, 2, 4, 6, 2, 3, 2, 4, 4, 3, 4, 6, 5, 7, 5, 4, 3, 6, 2, 6, 4, 4, 8, 5, 3, 5, 3, 4, 4, 5, 6, 3, 3, 3, 5, 3, 7, 2, 6, 5, 2, 5, 5, 4, 2, 2, 7, 3, 5, 4, 3, 3, 8, 4, 2, 3, 4, 4, 4, 6, 6, 5, 4, 2, 6, 3, 4, 3, 4, 7, 9, 4, 3, 3, 5, 5, 3, 4, 4, 6, 7, 6, 2, 5, 5, 5, 2, 6, 6, 3, 4, 8, 4, 7, 7, 3, 4, 2, 4, 10, 5, 5, 3, 4, 4, 4, 5, 3, 9, 5, 6, 3, 6, 4, 3, 3, 6, 5, 6, 3, 6, 3, 5, 3, 5, 4, 3, 6, 4, 3, 4, 5, 5, 6, 6, 5, 3, 3, 2, 6, 3, 4, 4, 5, 2, 5, 7, 2, 7, 3, 2, 3, 3, 3, 3, 5, 3, 2, 7, 4, 4, 7, 4, 6, 7, 7, 4, 4, 7, 6, 8, 6, 5, 2, 7, 5, 2, 5, 6, 2, 3, 8, 3, 2, 9, 3, 4, 4, 4, 3, 2, 5, 2, 6, 10, 3, 5, 3, 3, 2, 2, 5, 2, 4, 6, 3, 4, 2, 4, 5, 2, 9, 6, 2, 3, 2, 7, 6, 6, 4, 3, 4, 2, 2, 9, 6, 5, 7, 2, 2, 8, 2, 2, 5, 2, 2, 6, 6, 3, 3, 2, 4, 9, 2, 3, 6, 5, 3, 4, 4, 3, 5, 4, 2, 6, 5, 6, 2, 2, 2, 4, 2, 3, 8, 5, 5, 6, 4, 4, 4, 8, 3, 2, 6, 4, 9, 4, 8, 4, 4, 4, 3, 4, 3, 5, 4, 2, 7, 4, 6, 6, 3, 3, 5, 3, 4, 2, 6, 6, 4, 3, 5, 4, 6, 5, 3, 6, 2, 3, 6, 5, 2, 3, 5, 5, 9, 5, 4, 3, 2, 2, 3, 3, 3, 4, 8, 5, 6, 4, 3, 4, 6, 3, 3, 3, 5, 8, 4, 2, 3, 3, 6, 9, 3, 5, 5, 5, 2, 6, 9, 5, 2, 2, 4, 2, 4, 4, 5, 5, 4, 4, 4, 3, 3, 3, 4, 3, 3, 6, 4, 4, 4, 3, 4, 6, 5, 2, 3, 4, 6, 3, 2, 4, 7, 4, 6, 4, 7, 6, 4, 7, 6, 8, 7, 3, 7, 3, 4, 2, 7, 5, 10, 8, 4, 8, 5, 2, 4, 4, 4, 10, 6, 7, 5, 3, 4, 3, 4, 3, 4, 5, 3, 5, 2, 4, 4, 4, 5, 2, 6, 4, 2, 4, 3, 6, 4, 2, 7, 2, 5, 2, 4, 5, 2, 7, 4, 4, 5, 6, 2, 2, 4, 5, 3, 3, 3, 3, 9, 4, 2, 5, 2, 3, 7, 5, 3, 3, 4, 5, 6, 6, 8, 2, 2, 5, 7, 5, 2, 4, 2, 3, 2, 5, 4, 3, 5, 3, 7, 11, 6, 3, 6, 5, 3, 4, 5, 4, 4, 3, 3, 4, 5, 6, 3, 5, 4, 5, 7, 4, 5, 2, 4, 5, 4, 2, 2, 2, 7, 3, 2, 4, 2, 5, 6, 3, 5, 7, 3, 5, 8, 4, 7, 3, 3, 5, 5, 4, 3, 4, 5, 3, 4, 6, 3, 4, 5, 2, 2, 3, 4, 2, 5, 6, 5, 8, 7, 2, 4, 6, 3, 3, 3, 4, 3, 4, 3, 3, 4, 3, 5, 4, 4, 9, 7, 7, 5, 6, 4, 7, 7, 6, 4, 4, 3, 2, 3, 6, 8, 4, 3, 2, 4, 6, 4, 7, 5, 4, 3, 9, 4, 2, 5, 3, 3, 3, 4, 5, 6, 5, 6, 5, 4, 5, 3, 4, 3, 4, 2, 7, 6, 6, 5, 3, 5, 2, 4, 4, 4, 4, 6, 6, 6, 8, 2, 6, 7, 4, 3, 3, 5, 8, 5, 2, 2, 5, 7, 2, 7, 5, 3, 7, 5, 3, 5, 4, 3, 5, 6, 4, 10, 2, 3, 4, 5, 4, 8, 2, 3, 4, 4, 4, 5, 6, 4, 4, 4, 7, 4, 3, 5, 4, 4, 5, 7, 3, 4, 4, 7, 3, 5, 5, 2, 6, 6, 4, 4, 3, 3, 3, 4, 3, 2, 7, 4, 4, 5, 8, 9, 4, 2, 3, 2, 5, 4, 4, 3, 3, 7, 2, 2, 4, 3, 2, 3, 3, 4, 6, 5, 4, 3, 5, 5, 3, 5, 3, 8, 5, 4, 9, 10, 2, 2, 3, 4, 5, 3, 4, 3, 5, 7, 7, 7, 5, 4, 6, 6, 3, 4, 5, 7, 6, 4, 2, 6, 2, 8, 9, 4, 3, 2, 3, 5, 4, 4, 6, 7, 5, 4, 3, 4, 5, 6, 3, 4, 3, 4, 11, 4, 3, 2, 4, 3, 5, 9, 6, 2, 3, 6, 6, 2, 4, 2, 7, 8, 3, 3, 4, 4, 3, 3, 3, 7, 3, 7, 2, 3, 9, 3, 3, 5, 4, 4, 3, 2, 10, 3, 5, 8, 8, 4, 3, 6, 5, 2, 3, 3, 7, 5, 2, 7, 4, 3, 6, 7, 8, 4, 2, 5, 3, 4, 3, 4, 3, 5, 4, 2, 3, 4, 5, 7, 5, 4, 5, 2, 5, 9, 8, 4, 4, 2, 2, 6, 4, 4, 3, 5, 6, 3, 9, 4, 4, 4, 4, 2, 3, 4, 4, 5, 3, 4, 4, 4, 3, 4, 5, 2, 3, 6, 5, 7, 5, 6, 4, 5, 2, 3, 6, 6, 5, 3, 5, 2, 2, 6, 4, 2, 2, 7, 4, 3, 4, 4, 6, 4, 5, 5, 7, 3, 3, 4, 8, 6, 4, 3, 5, 3, 4, 5, 3, 4, 4, 7, 5, 3, 9, 4, 7, 10, 4, 3, 4, 2, 6, 5, 5, 4, 2, 3, 4, 7, 2, 4, 6, 5, 8, 3, 4, 4, 3, 5, 3, 6, 4, 4, 6, 3, 2, 5, 2, 6, 4, 3, 5, 5, 3, 4, 5, 5, 4, 3, 2, 6, 6, 7, 3, 5, 2, 4, 6, 3, 5, 3, 4, 7, 6, 2, 4, 3, 4, 2, 7, 4, 4, 3, 6, 3, 2, 5, 5, 3, 8, 4, 3, 2, 6, 2, 4, 5, 3, 5, 3, 3, 2, 2, 3, 2, 6, 2, 4, 3, 3, 7, 5, 3, 3, 3, 6, 4, 3, 3, 4, 8, 5, 6, 2, 7, 7, 2, 3, 9, 6, 5, 4, 6, 2, 3, 3, 7, 7, 4, 3, 3, 3, 2, 6, 3, 6, 3, 3, 3, 5, 3, 4, 2, 2, 3, 5, 4, 2, 4, 6, 4, 3, 3, 2, 2, 3, 7, 5, 3, 4, 6, 4, 4, 3, 2, 5, 3, 5, 6, 6, 7, 5, 3, 5, 4, 4, 8, 2, 9, 4, 7, 6, 4, 5, 7, 5, 2, 10, 7, 6, 3, 5, 6, 7, 3, 3, 2, 5, 8, 2, 5, 4, 4, 8, 7, 3, 5, 4, 3, 3, 8, 5, 3, 4, 9, 7, 3, 4, 8, 5, 3, 3, 8, 7, 4, 3, 5, 5, 3, 5, 3, 9, 3, 3, 6, 2, 5, 5, 4, 4, 4, 6, 8, 5, 3, 3, 5, 6, 8, 2, 3, 4, 8, 3, 3, 6, 3, 4, 3, 2, 7, 5, 2, 6, 3, 4, 4, 4, 3, 5, 2, 2, 4, 3, 7, 4, 8, 2, 2, 6, 5, 4, 7, 3, 5, 4, 5, 6, 6, 8, 2, 2, 4, 3, 2, 5, 4, 2, 3, 4, 3, 4, 2, 5, 5, 3, 3, 3, 6, 6, 7, 2, 10, 4, 3, 3, 4, 6, 4, 5, 4, 6, 2, 2, 4, 2, 8, 5, 5, 4, 7, 7, 4, 3, 3, 3, 8, 4, 6, 4, 3, 4, 3, 3, 7, 3, 3, 8, 6, 6, 5, 2, 3, 6, 6, 3, 4, 9, 6, 10, 5, 3, 9, 6, 4, 9, 2, 3, 5, 4, 5, 3, 3, 7, 6, 2, 4, 4, 3, 5, 2, 7, 4, 2, 5, 10, 7, 5, 2, 6, 3, 6, 6, 6, 7, 9, 6, 8, 7, 4, 4, 8, 5, 2, 8, 3, 4, 3, 5, 5, 5, 4, 4, 3, 6, 6, 4, 2, 6, 6, 8, 7, 9, 2, 4, 7, 3, 6, 5, 2, 2, 10, 2, 6, 4, 4, 4, 2, 4, 4, 2, 4, 7, 4, 5, 5, 5, 2, 4, 6, 7, 3, 2, 2, 5, 5, 4, 3, 6, 5, 3, 2, 6, 2, 6, 7, 5, 6, 4, 2, 6, 6, 4, 6, 4, 6, 3, 2, 4, 5, 8, 3, 4, 5, 4, 6, 4, 5, 2, 7, 4, 2, 4, 2, 3, 2, 5, 6, 4, 4, 3, 3, 3, 8, 4, 3, 3, 9, 4, 3, 4, 3, 7, 5, 5, 5, 9, 5, 2, 4, 4, 6, 6, 3, 3, 2, 6, 5, 4, 5, 5, 2, 3, 3, 4, 3, 7, 3, 5, 4, 7, 8, 6, 6, 2, 6, 4, 4, 3, 4, 3, 5, 5, 4, 6, 3, 6, 3, 5, 5, 7, 6, 2, 3, 6, 5, 4, 6, 3, 7, 5, 5, 6, 2, 2, 3, 4, 8, 4, 3, 6, 2, 6, 2, 3, 4, 7, 4, 6, 5, 3, 5, 8, 4, 6, 4, 4, 6, 3, 2, 10, 8, 8, 5, 7, 4, 4, 4, 4, 6, 5, 5, 7, 2, 2, 2, 2, 5, 2, 6, 2, 2, 4, 5, 3, 4, 2, 5, 3, 3, 4, 2, 5, 4, 4, 4, 4, 2, 4, 5, 4, 6, 2, 7, 3, 5, 4, 8, 2, 4, 8, 6, 4, 6, 4, 4, 6, 5, 3, 6, 3, 2, 3, 2, 3, 4, 2, 3, 2, 2, 4, 3, 3, 3, 4, 4, 3, 4, 5, 3, 3, 3, 3, 5, 6, 3, 2, 2, 4, 4, 4, 7, 2, 6, 4, 3, 6, 2, 3, 2, 6, 6, 3, 7, 5, 3, 2, 6, 4, 2, 3, 2, 4, 2, 6, 2, 8, 3, 2, 6, 5, 2, 6, 4, 7, 4, 6, 2, 3, 2, 7, 8, 2, 5, 10, 6, 5, 3, 6, 4, 4, 4, 3, 2, 2, 7, 4, 2, 4, 3, 4, 4, 7, 4, 3, 4, 2, 2, 2, 4, 4, 4, 2, 6, 2, 4, 4, 4, 5, 4, 5, 3, 4, 6, 5, 3, 4, 4, 5, 5, 4, 3, 5, 2, 8, 2, 6, 6, 3, 4, 5, 3, 4, 3, 4, 4, 3, 4, 4, 5, 3, 4, 4, 5, 5, 3, 5, 5, 2, 5, 10, 2, 6, 4, 7, 5, 3, 7, 4, 3, 5, 3, 5, 3, 6, 5, 2, 8, 5, 5, 4, 7, 4, 2, 6, 3, 2, 3, 3, 2, 4, 5, 4, 3, 3, 4, 3, 7, 7, 3, 4, 3, 5, 8, 4, 6, 3, 4, 3, 5, 3, 5, 2, 2, 4, 4, 4, 2, 5, 5, 3, 4, 9, 2, 9, 4, 4, 4, 3, 5, 2, 6, 2, 3, 4, 2, 3, 4, 4, 9, 5, 6, 10, 5, 3, 7, 3, 6, 8, 3, 4, 5, 6, 6, 4, 2, 8, 6, 3, 3, 2, 2, 7, 4, 2, 3, 6, 3, 6, 2, 3, 2, 9, 3, 10, 7, 2, 6, 6, 4, 4, 6, 4, 3, 4, 4, 5, 2, 6, 8, 5, 3, 2, 4, 6, 2, 8, 8, 5, 5, 7, 3, 4, 5, 2, 5, 3, 5, 7, 8, 4, 3, 4, 3, 2, 5, 6, 3, 4, 9, 4, 2, 6, 3, 6, 2, 3, 4, 2, 5, 5, 6, 4, 2, 6, 4, 2, 5, 3, 3, 3, 3, 3, 3, 4, 2, 4, 6, 7, 5, 9, 4, 8, 3, 4, 2, 3, 4, 4, 4, 3, 5, 6, 4, 4, 6, 4, 6, 5, 5, 5, 4, 4, 4, 6, 3, 2, 6, 4, 2, 6, 4, 5, 4, 2, 6, 2, 6, 8, 3, 6, 3, 2, 4, 4, 3, 2, 4, 6, 5, 3, 4, 5, 4, 4, 6, 4, 3, 4, 4, 3, 3, 8, 2, 2, 3, 4, 5, 6, 6, 3, 7, 2, 3, 5, 3, 3, 4, 4, 3, 5, 2, 5, 5, 7, 4, 4, 10, 5, 4, 4, 3, 4, 5, 5, 4, 7, 3, 4, 7, 7, 2, 5, 5, 4, 3, 3, 4, 5, 4, 4, 5, 4, 5, 7, 6, 5, 8, 7, 2, 4, 5, 3, 6, 4, 5, 4, 4, 5, 7, 2, 4, 7, 4, 2, 3, 9, 6, 5, 5, 4, 3, 3, 4, 4, 3, 2, 3, 4, 5, 4, 6, 3, 4, 2, 5, 3, 2, 3, 5, 3, 4, 3, 3, 5, 3, 3, 3, 8, 4, 8, 5, 3, 3, 2, 6, 5, 8, 5, 3, 3, 2, 2, 4, 6, 2, 3, 4, 4, 5, 3, 8, 2, 6, 3, 5, 4, 3, 6, 3, 6, 4, 9, 6, 6, 2, 7, 5, 4, 4, 2, 4, 4, 7, 2, 2, 5, 3, 2, 3, 7, 4, 2, 5, 7, 5, 6, 3, 6, 3, 3, 6, 6, 2, 5, 5, 6, 5, 5, 2, 4, 6, 6, 6, 2, 4, 8, 2, 5, 8, 5, 3, 3, 4, 7, 2, 3, 2, 4, 2, 2, 8, 4, 4, 6, 3, 5, 3, 3, 7, 6, 3, 3, 2, 4, 2, 4, 2, 2, 3, 4, 3, 9, 5, 4, 6, 4, 9, 7, 6, 6, 7, 3, 3, 4, 4, 4, 8, 5, 3, 4, 3, 3, 2, 3, 6, 6, 3, 4, 8, 3, 4, 4, 6, 6, 3, 4, 2, 4, 4, 4, 2, 2, 9, 4, 5, 2, 5, 4, 4, 3, 3, 3, 3, 5, 5, 7, 4, 3, 4, 2, 8, 5, 2, 7, 2, 3, 3, 4, 3, 5, 3, 4, 4, 3, 7, 3, 7, 3, 6, 5, 4, 5, 5, 9, 4, 4, 2, 5, 3, 3, 3, 6, 3, 7, 5, 5, 3, 5, 3, 7, 3, 6, 3, 6, 3, 2, 3, 4, 2, 7, 3, 4, 5, 3, 7, 6, 8, 5, 4, 4, 2, 5, 6, 4, 6, 7, 7, 4, 2, 5, 5, 3, 4, 3, 2, 6, 9, 3, 5, 2, 3, 6, 3, 3, 6, 4, 5, 6, 5, 5, 2, 5, 4, 2, 4, 6, 4, 3, 6, 4, 10, 5, 4, 2, 5, 5, 4, 2, 6, 2, 7, 2, 4, 4, 6, 7, 5, 4, 9, 4, 6, 3, 3, 7, 6, 2, 7, 7, 2, 4, 6, 4, 4, 3, 4, 4, 4, 3, 3, 5, 4, 6, 2, 4, 5, 3, 4, 2, 4, 4, 5, 4, 5, 3, 7, 6, 6, 3, 7, 3, 4, 3, 6, 5, 3, 5, 4, 3, 4, 3, 6, 4, 2, 4, 2, 7, 3, 5, 7, 3, 5, 4, 8, 9, 4, 3, 2, 5, 3, 5, 3, 4, 3, 8, 5, 3, 5, 4, 4, 4, 6, 4, 4, 3, 5, 3, 8, 3, 8, 6, 5, 3, 2, 6, 5, 2, 5, 10, 2, 3, 3, 4, 5, 5, 4, 2, 5, 2, 3, 3, 7, 4, 4, 4, 4, 6, 5, 5, 6, 8, 4, 4, 3, 4, 8, 4, 3, 4, 9, 5, 4, 3, 6, 6, 7, 4, 3, 5, 4, 2, 4, 6, 5, 5, 6, 2, 4, 5, 5, 3, 6, 6, 6, 3, 2, 5, 6, 3, 4, 4, 3, 4, 6, 2, 4, 2, 3, 2, 5, 6, 4, 2, 5, 4, 3, 6, 3, 5, 6, 5, 4, 3, 6, 5, 4, 4, 3, 3, 6, 3, 4, 4, 5, 3, 4, 2, 2, 3, 6, 3, 2, 2, 6, 7, 3, 8, 3, 4, 5, 6, 3, 6, 3, 5, 4, 2, 6, 9, 3, 3, 4, 8, 3, 3, 5, 4, 5, 4, 7, 7, 5, 6, 3, 2, 6, 3, 4, 2, 6, 2, 9, 6, 3, 6, 3, 4, 3, 4, 8, 10, 2, 4, 2, 3, 4, 4, 4, 4, 4, 4, 4, 2, 5, 2, 3, 4, 3, 5, 4, 5, 6, 4, 6, 2, 4, 4, 3, 3, 2, 2, 8, 4, 5, 3, 3, 5, 3, 4, 2, 3, 7, 5, 3, 7, 7, 3, 4, 6, 5, 3, 3, 5, 4, 7, 5, 3, 2, 2, 7, 4, 8, 3, 4, 4, 4, 7, 3, 2, 2, 4, 4, 11, 4, 3, 6, 2, 7, 4, 3, 9, 2, 3, 2, 6, 5, 4, 7, 5, 3, 3, 3, 5, 4, 4, 4, 3, 4, 5, 3, 3, 8, 6, 7, 3, 2, 3, 6, 3, 2, 8, 6, 5, 3, 4, 7, 3, 7, 7, 4, 5, 5, 2, 2, 3, 3, 8, 5, 5, 3, 3, 4, 4, 6, 2, 5, 4, 6, 3, 4, 4, 5, 3, 5, 2, 3, 5, 2, 2, 2, 2, 3, 4, 6, 5, 5, 7, 5, 5, 5, 3, 2, 9, 3, 6, 6, 5, 5, 3, 3, 4, 6, 3, 2, 6, 5, 3, 5, 3, 6, 4, 4, 2, 3, 5, 2, 5, 4, 4, 4, 6, 7, 4, 4, 4, 7, 4, 5, 4, 3, 3, 4, 5, 6, 3, 6, 6, 3, 3, 7, 3, 3, 4, 4, 8, 7, 8, 8, 6, 2, 4, 4, 2, 3, 4, 2, 6, 5, 2, 5, 5, 4, 6, 2, 2, 6, 3, 4, 4, 4, 2, 8, 6, 5, 4, 4, 3, 9, 5, 6, 6, 5, 5, 4, 4, 4, 6, 4, 2, 5, 3, 3, 2, 5, 3, 3, 4, 3, 7, 3, 3, 3, 5, 2, 5, 7, 3, 3, 3, 2, 7, 2, 3, 2, 5, 4, 4, 4, 5, 6, 2, 3, 2, 6, 2, 4, 3, 4, 3, 6, 4, 2, 3, 3, 6, 7, 3, 5, 7, 4, 4, 5, 6, 5, 3, 9, 3, 3, 5, 6, 5, 7, 5, 2, 5, 6, 2, 7, 3, 3, 5, 3, 3, 8, 6, 3, 3, 5, 3, 5, 3, 3, 2, 5, 4, 6, 6, 4, 4, 5, 4, 2, 4, 6, 3, 5, 6, 3, 4, 6, 3, 5, 4, 3, 4, 2, 4, 8, 8, 3, 2, 3, 6, 2, 3, 4, 2, 4, 6, 6, 2, 2, 7, 8, 5, 3, 6, 2, 9, 3, 6, 9, 4, 4, 4, 2, 4, 7, 4, 2, 3, 5, 6, 6, 3, 4, 2, 2, 4, 3, 4, 6, 4, 4, 6, 6, 2, 5, 4, 4, 4, 2, 3, 10, 6, 4, 4, 4, 3, 8, 5, 3, 3, 6, 7, 4, 4, 6, 3, 2, 8, 6, 7, 6, 2, 2, 4, 3, 3, 3, 5, 3, 3, 6, 3, 5, 3, 5, 2, 4, 3, 3, 7, 3, 6, 3, 7, 3, 5, 2, 4, 2, 2, 6, 2, 10, 4, 3, 4, 5, 4, 2, 7, 3, 3, 3, 5, 3, 3, 6, 4, 3, 3, 2, 6, 5, 2, 2, 5, 4, 3, 3, 6, 2, 2, 6, 2, 3, 4, 2, 4, 4, 5, 7, 2, 2, 5, 8, 4, 6, 2, 2, 7, 3, 3, 2, 4, 2, 3, 5, 4, 2, 9, 5, 5, 4, 4, 8, 6, 6, 7, 6, 3, 2, 3, 7, 5, 3, 3, 3, 2, 5, 7, 5, 3, 5, 4, 4, 2, 6, 2, 7, 3, 4, 5, 3, 3, 3, 4, 6, 5, 3, 4, 3, 3, 4, 2, 3, 3, 3, 9, 4, 9, 4, 3, 3, 4, 4, 3, 2, 2, 3, 8, 3, 2, 6, 5, 5, 3, 5, 5, 5, 4, 4, 2, 6, 4, 5, 5, 4, 5, 3, 3, 6, 3, 3, 7, 3, 4, 2, 5, 6, 5, 6, 3, 5, 8, 3, 2, 6, 4, 6, 5, 2, 4, 10, 5, 3, 3, 5, 4, 4, 3, 4, 2, 2, 3, 5, 7, 4, 2, 4, 5, 3, 3, 4, 6, 3, 4, 2, 3, 5, 3, 7, 4, 3, 6, 6, 2, 3, 4, 4, 8, 2, 6, 3, 3, 6, 9, 4, 7, 6, 3, 5, 4, 3, 4, 3, 6, 4, 6, 3, 6, 3, 3, 5, 8, 4, 4, 4, 7, 7, 3, 6, 3, 3, 5, 3, 5, 4, 5, 7, 7, 4, 5, 8, 5, 5, 4, 3, 3, 3, 7, 7, 3, 3, 2, 3, 5, 5, 6, 2, 3, 4, 6, 3, 3, 4, 2, 6, 4, 6, 3, 7, 2, 2, 4, 3, 6, 6, 2, 3, 4, 3, 3, 2, 2, 3, 3, 2, 9, 3, 5, 2, 4, 6, 5, 2, 8, 3, 6, 3, 5, 6, 3, 2, 3, 6, 10, 6, 2, 3, 3, 3, 4, 3, 2, 7, 2, 2, 2, 2, 5, 4, 6, 5, 2, 8, 5, 4, 3, 3, 5, 4, 3, 4, 3, 6, 3, 3, 3, 4, 5, 5, 6, 9, 5, 7, 5, 2, 3, 6, 3, 3, 4, 2, 3, 2, 4, 2, 5, 4, 5, 2, 6, 3, 5, 6, 4, 2, 5, 5, 3, 5, 4, 5, 4, 3, 6, 5, 3, 6, 4, 2, 2, 4, 3, 2, 6, 3, 4, 2, 4, 5, 6, 6, 4, 2, 4, 3, 4, 4, 4, 5, 2, 10, 4, 4, 2, 6, 2, 4, 2, 2, 6, 4, 3, 3, 3, 3, 7, 8, 2, 3, 4, 3, 5, 3, 10, 3, 3, 4, 5, 5, 6, 6, 6, 4, 6, 4, 5, 5, 5, 2, 2, 2, 4, 3, 2, 5, 5, 6, 6, 6, 3, 3, 7, 2, 5, 5, 3, 3, 4, 3, 8, 3, 4, 4, 5, 7, 5, 3, 4, 6, 3, 5, 6, 7, 2, 4, 3, 4, 7, 2, 2, 6, 4, 3, 6, 3, 4, 3, 2, 6, 3, 3, 2, 5, 3, 5, 3, 3, 3, 6, 4, 2, 6, 8, 4, 2, 4, 2, 7, 3, 3, 2, 3, 4, 2, 3, 3, 4, 2, 7, 3, 2, 4, 7, 4, 4, 2, 5, 2, 2, 3, 4, 5, 4, 5, 2, 4, 3, 5, 4, 4, 2, 4, 4, 6, 3, 4, 4, 5, 2, 4, 2, 5, 3, 2, 3, 2, 3, 8, 3, 5, 7, 2, 2, 4, 2, 7, 4, 5, 3, 8, 2, 3, 7, 3, 2, 4, 5, 4, 2, 8, 4, 5, 2, 2, 7, 5, 8, 4, 4, 4, 2, 7, 2, 2, 4, 5, 2, 2, 2, 5, 4, 4, 5, 6, 2, 2, 5, 2, 3, 2, 3, 4, 2, 3, 3, 5, 8, 2, 4, 6, 5, 3, 5, 2, 8, 3, 8, 4, 5, 3, 4, 5, 4, 6, 3, 5, 6, 5, 4, 4, 3, 4, 3, 4, 4, 3, 2, 3, 4, 4, 5, 7, 7, 2, 6, 2, 3, 3, 2, 3, 3, 6, 6, 4, 2, 3, 6, 4, 5, 3, 5, 4, 7, 2, 3, 4, 6, 5, 3, 2, 5, 10, 2, 2, 7, 7, 3, 2, 3, 3, 3, 5, 4, 4, 2, 2, 7, 7, 3, 3, 2, 3, 3, 3, 5, 3, 7, 2, 5, 4, 2, 2, 5, 2, 5, 9, 4, 4, 3, 2, 7, 4, 7, 3, 4, 4, 7, 4, 5, 2, 3, 5, 2, 4, 9, 3, 9, 4, 5, 4, 2, 2, 4, 4, 2, 8, 3, 2, 3, 7, 5, 5, 2, 3, 4, 5, 6, 4, 2, 4, 3, 4, 4, 2, 6, 7, 3, 4, 5, 2, 5, 3, 5, 2, 5, 4, 4, 8, 6, 3, 4, 9, 4, 2, 3, 3, 4, 3, 2, 3, 3, 4, 5, 4, 4, 6, 3, 4, 6, 4, 4, 3, 2, 5, 7, 7, 3, 7, 4, 2, 3, 3, 6, 6, 5, 4, 5, 4, 6, 3, 4, 10, 2, 6, 4, 4, 5, 5, 8, 5, 6, 4, 2, 5, 8, 4, 6, 8, 4, 3, 3, 3, 6, 3, 6, 4, 4, 4, 4, 3, 3, 4, 3, 2, 8, 5, 5, 4, 6, 4, 2, 8, 5, 2, 3, 6, 8, 4, 3, 7, 6, 3, 6, 2, 3, 6, 4, 5, 3, 2, 4, 4, 7, 8, 4, 5, 6, 7, 8, 5, 5, 5, 3, 5, 4, 4, 5, 4, 6, 4, 7, 4, 4, 3, 10, 3, 7, 7, 2, 3, 7, 2, 6, 5, 2, 10, 4, 9, 7, 6, 4, 9, 3, 4, 3, 3, 3, 3, 2, 2, 7, 2, 6, 7, 3, 3, 3, 6, 5, 5, 4, 3, 4, 4, 4, 2, 8, 7, 4, 2, 4, 3, 2, 4, 4, 2, 6, 4, 5, 4, 4, 3, 3, 8, 5, 7, 6, 3, 3, 7, 6, 6, 4, 6, 6, 6, 4, 5, 3, 9, 6, 10, 7, 5, 6, 3, 3, 5, 2, 2, 4, 4, 3, 4, 3, 5, 3, 2, 7, 2, 7, 3, 8, 2, 2, 3, 4, 3, 4, 6, 2, 4, 5, 4, 3, 2, 3, 10, 7, 3, 2, 5, 5, 3, 4, 4, 3, 4, 6, 3, 5, 8, 5, 6, 6, 3, 5, 4, 2, 2, 6, 5, 2, 6, 6, 2, 6, 2, 3, 9, 2, 8, 7, 3, 4, 3, 3, 3, 6, 5, 4, 5, 3, 5, 4, 8, 7, 3, 6, 6, 3, 5, 6, 7, 3, 8, 4, 6, 7, 6, 5, 6, 2, 2, 7, 6, 6, 2, 6, 4, 4, 3, 3, 2, 4, 4, 4, 3, 3, 4, 2, 8, 5, 5, 5, 6, 3, 5, 2, 7, 2, 4, 8, 5, 4, 7, 4, 3, 5, 5, 3, 6, 3, 3, 5, 2, 4, 3, 8, 5, 8, 2, 5, 4, 5, 8, 4, 4, 6, 2, 4, 3, 4, 7, 3, 6, 6, 6, 6, 4, 2, 4, 2, 5, 10, 6, 10, 3, 7, 5, 8, 3, 4, 5, 3, 3, 3, 4, 7, 4, 2, 8, 7, 5, 4, 3, 6, 3, 5, 4, 3, 2, 3, 7, 9, 3, 5, 3, 4, 3, 4, 3, 3, 5, 4, 7, 4, 4, 3, 3, 2, 8, 8, 4, 9, 3, 5, 4, 4, 5, 4, 3, 5, 6, 6, 4, 6, 5, 6, 4, 5, 8, 4, 5, 3, 3, 5, 3, 7, 5, 6, 8, 3, 7, 4, 4, 5, 3, 3, 5, 3, 4, 5, 5, 4, 3, 6, 2, 5, 6, 5, 5, 9, 9, 4, 5, 2, 2, 5, 4, 3, 3, 4, 2, 6, 2, 4, 4, 6, 5, 4, 2, 5, 3, 7, 2, 10, 4, 3, 7, 5, 3, 6, 5, 9, 7, 3, 6, 3, 4, 2, 3, 2, 4, 7, 5, 7, 5, 4, 2, 6, 5, 4, 2, 2, 3, 4, 6, 9, 2, 2, 4, 7, 6, 3, 9, 4, 4, 3, 5, 5, 4, 2, 4, 6, 2, 7, 4, 5, 5, 5, 2, 5, 5, 4, 5, 4, 7, 6, 6, 7, 4, 4, 2, 8, 5, 4, 3, 4, 2, 2, 2, 5, 3, 3, 6, 3, 3, 4, 5, 2, 4, 3, 4, 3, 5, 2, 2, 2, 6, 3, 3, 7, 7, 6, 3, 5, 2, 5, 7, 3, 4, 2, 2, 3, 3, 3, 5, 2, 5, 1, 3, 3, 3, 9, 6, 10, 2, 5, 4, 3, 7, 2, 8, 6, 4, 5, 8, 2, 3, 6, 6, 3, 8, 6, 6, 4, 4, 3, 2, 7, 6, 9, 5, 7, 5, 3, 3, 3, 5, 4, 4, 7, 5, 5, 8, 8, 7, 2, 2, 6, 4, 7, 9, 8, 2, 4, 4, 6, 4, 7, 6, 2, 3, 3, 4, 8, 2, 5, 5, 4, 7, 5, 4, 5, 3, 3, 3, 4, 3, 4, 4, 7, 3, 4, 3, 3, 4, 4, 3, 4, 4, 7, 2, 3, 4, 9, 5, 2, 4, 5, 7, 2, 3, 4, 5, 6, 3, 2, 2, 2, 5, 5, 3, 3, 3, 6, 4, 5, 6, 3, 4, 6, 5, 4, 7, 5, 6, 3, 4, 6, 3, 7, 3, 4, 6, 4, 2, 4, 6, 5, 5, 3, 3, 2, 5, 8, 6, 3, 5, 3, 5, 3, 4, 6, 4, 6, 7, 7, 5, 7, 2, 5, 5, 5, 7, 4, 4, 3, 7, 4, 2, 6, 4, 2, 2, 2, 3, 4, 4, 3, 3, 4, 2, 4, 7, 2, 4, 2, 8, 5, 5, 3, 3, 2, 7, 3, 4, 5, 2, 3, 3, 3, 8, 5, 4, 4, 6, 3, 5, 3, 3, 2, 4, 5, 7, 7, 7, 3, 8, 5, 6, 3, 3, 6, 3, 5, 4, 7, 4, 5, 4, 4, 6, 3, 4, 2, 5, 5, 4, 4, 7, 5, 5, 4, 4, 5, 6, 4, 3, 2, 2, 5, 2, 10, 7, 5, 10, 4, 8, 5, 6, 2, 3, 4, 4, 4, 9, 10, 3, 3, 4, 4, 2, 3, 5, 4, 2, 2, 5, 5, 4, 5, 3, 6, 3, 4, 2, 4, 3, 3, 2, 6, 5, 4, 4, 3, 5, 4, 7, 5, 2, 3, 3, 4, 5, 5, 5, 2, 2, 2, 4, 4, 5, 4, 3, 3, 7, 2, 4, 3, 9, 4, 5, 2, 8, 2, 3, 3, 8, 2, 3, 5, 4, 4, 2, 4, 6, 5, 3, 7, 4, 4, 5, 3, 8, 4, 5, 6, 4, 3, 4, 2, 6, 2, 2, 3, 3, 7, 6, 6, 6, 7, 3, 8, 6, 4, 3, 3, 4, 3, 5, 7, 2, 8, 4, 5, 5, 5, 5, 5, 4, 6, 3, 4, 4, 4, 3, 8, 5, 3, 3, 9, 8, 6, 4, 7, 2, 5, 4, 7, 3, 3, 6, 2, 4, 5, 3, 5, 2, 7, 4, 3, 4, 5, 7, 3, 2, 5, 2, 5, 2, 3, 2, 5, 5, 8, 4, 2, 5, 6, 3, 3, 9, 4, 4, 6, 5, 4, 3, 5, 2, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 2, 7, 3, 4, 4, 3, 5, 6, 5, 3, 7, 4, 3, 2, 5, 3, 3, 2, 4, 7, 3, 6, 7, 7, 7, 6, 5, 5, 6, 2, 5, 9, 6, 4, 7, 4, 4, 3, 2, 5, 7, 10, 3, 4, 9, 5, 4, 2, 3, 3, 3, 3, 3, 7, 6, 8, 4, 4, 3, 7, 3, 8, 4, 3, 2, 4, 2, 7, 2, 3, 4, 6, 3, 4, 2, 3, 4, 2, 5, 4, 4, 3, 2, 6, 5, 4, 3, 7, 6, 2, 3, 7, 2, 5, 2, 2, 2, 5, 3, 3, 5, 4, 5, 9, 7, 7, 3, 4, 3, 3, 3, 9, 4, 6, 4, 4, 6, 2, 4, 5, 5, 3, 5, 4, 4, 7, 7, 3, 5, 3, 5, 3, 3, 3, 9, 2, 5, 2, 4, 3, 5, 5, 2, 2, 5, 3, 4, 3, 7, 2, 5, 5, 8, 6, 5, 3, 5, 3, 3, 2, 3, 4, 6, 7, 2, 4, 2, 7, 5, 4, 7, 5, 3, 2, 5, 2, 4, 3, 2, 2, 2, 3, 2, 4, 4, 6, 3, 4, 10, 5, 6, 2, 2, 3, 4, 4, 4, 5, 6, 4, 4, 3, 3, 2, 4, 5, 4, 3, 4, 2, 6, 2, 2, 2, 3, 7, 4, 5, 3, 4, 3, 4, 5, 2, 7, 3, 3, 3, 3, 4, 2, 3, 4, 3, 7, 5, 4, 5, 2, 4, 5, 6, 6, 4, 2, 6, 5, 3, 3, 5, 3, 8, 5, 7, 5, 3, 3, 4, 3, 4, 2, 2, 7, 3, 2, 3, 3, 4, 3, 3, 5, 4, 3, 6, 2, 4, 3, 2, 8, 3, 7, 5, 3, 6, 3, 5, 4, 3, 4, 2, 4, 6, 6, 3, 2, 3, 7, 3, 6, 4, 2, 4, 5, 6, 8, 7, 3, 3, 3, 6, 5, 3, 8, 3, 5, 4, 5, 3, 5, 4, 2, 4, 7, 5, 3, 2, 3, 7, 7, 4, 3, 5, 4, 5, 5, 5, 2, 3, 4, 5, 5, 5, 6, 3, 8, 6, 3, 9, 6, 5, 5, 6, 6, 7, 4, 4, 5, 3, 6, 7, 2, 6, 6, 3, 3, 5, 8, 4, 7, 6, 2, 3, 6, 3, 3, 6, 3, 4, 3, 5, 5, 2, 6, 6, 3, 5, 5, 4, 4, 3, 2, 5, 4, 7, 9, 3, 4, 3, 2, 7, 7, 5, 5, 3, 2, 3, 2, 3, 4, 3, 3, 2, 4, 5, 3, 5, 4, 9, 3, 6, 4, 3, 6, 9, 2, 6, 3, 4, 3, 3, 7, 7, 5, 6, 5, 4, 2, 2, 7, 2, 2, 4, 4, 4, 3, 4, 5, 4, 3, 4, 6, 6, 3, 4, 5, 3, 8, 4, 3, 3, 3, 7, 3, 4, 3, 3, 2, 2, 3, 3, 6, 5, 3, 3, 2, 3, 5, 3, 2, 4, 7, 5, 7, 4, 7, 6, 4, 3, 2, 4, 4, 4, 4, 4, 6, 8, 3, 7, 3, 4, 4, 4, 6, 5, 2, 4, 3, 6, 4, 4, 4, 3, 5, 10, 4, 7, 7, 2, 4, 7, 4, 2, 6, 2, 6, 3, 3, 3, 4, 4, 6, 2, 5, 3, 2, 5, 7, 5, 4, 4, 4, 4, 4, 5, 5, 4, 3, 4, 3, 4, 4, 3, 5, 3, 5, 4, 5, 5, 5, 7, 5, 6, 4, 3, 5, 3, 3, 8, 5, 8, 5, 5, 4, 6, 4, 6, 2, 2, 6, 3, 3, 6, 2, 3, 4, 4, 3, 5, 2, 4, 5, 5, 3, 3, 3, 3, 2, 2, 3, 4, 2, 3, 2, 7, 3, 6, 8, 2, 2, 2, 4, 3, 4, 4, 3, 5, 4, 5, 5, 2, 5, 4, 5, 4, 4, 4, 4, 3, 4, 5, 3, 5, 5, 3, 8, 3, 3, 4, 7, 3, 5, 2, 3, 3, 2, 5, 3, 6, 5, 4, 10, 3, 4, 3, 3, 5, 5, 6, 2, 9, 2, 6, 4, 5, 4, 4, 6, 2, 4, 3, 5, 6, 3, 7, 4, 4, 6, 3, 3, 3, 6, 2, 5, 3, 2, 4, 6, 7, 3, 7, 4, 2, 6, 4, 5, 5, 2, 4, 3, 6, 3, 4, 6, 2, 3, 7, 5, 2, 2, 2, 6, 5, 5, 4, 5, 4, 8, 3, 5, 3, 5, 2, 6, 5, 2, 3, 7, 10, 3, 6, 3, 6, 5, 5, 2, 3, 5, 4, 2, 3, 2, 2, 3, 2, 2, 4, 4, 2, 3, 5, 2, 2, 2, 2, 4, 8, 5, 4, 7, 3, 4, 3, 2, 3, 7, 6, 8, 3, 2, 5, 4, 2, 5, 4, 4, 4, 6, 6, 2, 2, 3, 3, 10, 6, 2, 3, 4, 6, 6, 4, 7, 4, 4, 5, 4, 5, 5, 4, 3, 3, 2, 3, 2, 7, 5, 8, 4, 3, 2, 4, 4, 4, 6, 2, 2, 4, 3, 9, 4, 3, 5, 2, 7, 5, 4, 4, 3, 2, 2, 3, 3, 2, 6, 5, 6, 3, 6, 6, 3, 2, 6, 3, 4, 3, 5, 2, 7, 3, 4, 4, 3, 3, 4, 5, 5, 6, 8, 4, 6, 4, 2, 4, 2, 4, 8, 2, 8, 4, 4, 3, 2, 5, 4, 8, 2, 5, 5, 2, 6, 4, 4, 5, 5, 4, 6, 5, 5, 4, 4, 3, 6, 5, 8, 3, 4, 2, 4, 3, 4, 4, 4, 6, 3, 8, 5, 6, 2, 6, 6, 4, 3, 4, 4, 5, 3, 6, 5, 2, 7, 7, 6, 3, 6, 4, 5, 2, 6, 4, 2, 5, 3, 2, 5, 4, 4, 4, 6, 2, 4, 4, 8, 3, 3, 4, 5, 6, 4, 4, 4, 3, 3, 2, 2, 3, 4, 6, 6, 5, 5, 2, 6, 4, 3, 3, 6, 4, 6, 6, 5, 4, 3, 3, 4, 3, 6, 4, 4, 3, 9, 3, 5, 7, 4, 4, 4, 7, 3, 3, 4, 2, 6, 7, 6, 5, 3, 4, 4, 6, 5, 2, 4, 4, 5, 2, 2, 3, 3, 3, 7, 4, 4, 4, 6, 2, 3, 6, 2, 3, 4, 2, 4, 6, 6, 4, 6, 4, 5, 4, 6, 5, 3, 7, 2, 3, 6, 2, 2, 5, 6, 10, 7, 4, 4, 6, 6, 7, 2, 6, 5, 3, 4, 4, 6, 3, 4, 4, 5, 3, 3, 9, 3, 5, 2, 2, 4, 3, 8, 4, 4, 4, 3, 6, 4, 5, 5, 9, 9, 9, 5, 2, 3, 3, 5, 5, 5, 5, 3, 5, 6, 3, 4, 5, 4, 4, 2, 3, 5, 7, 6, 5, 4, 2, 4, 6, 5, 3, 3, 5, 3, 8, 7, 8, 4, 5, 4, 9, 4, 3, 4, 2, 2, 2, 3, 5, 5, 6, 2, 5, 2, 5, 5, 2, 5, 5, 5, 4, 7, 4, 6, 2, 4, 4, 3, 8, 3, 4, 8, 3, 2, 2, 4, 5, 4, 5, 6, 6, 5, 3, 3, 4, 4, 5, 7, 5, 3, 7, 6, 3, 6, 2, 5, 5, 2, 5, 6, 7, 3, 5, 4, 4, 5, 8, 5, 4, 3, 3, 3, 8, 5, 7, 4, 4, 6, 4, 6, 5, 5, 6, 3, 3, 4, 4, 3, 2, 4, 4, 8, 4, 4, 6, 6, 4, 3, 2, 5, 5, 4, 4, 2, 4, 3, 5, 3, 2, 2, 4, 3, 4, 4, 8, 3, 3, 3, 2, 3, 4, 3, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 10, 6, 5, 3, 5, 7, 4, 4, 4, 6, 3, 5, 2, 4, 4, 5, 5, 5, 7, 6, 3, 5, 2, 8, 4, 4, 4, 4, 9, 2, 3, 4, 5, 3, 5, 6, 3, 4, 5, 3, 7, 5, 5, 2, 6, 3, 2, 4, 8, 6, 8, 2, 5, 4, 2, 4, 4, 3, 3, 7, 3, 5, 5, 2, 3, 3, 4, 5, 7, 4, 2, 3, 5, 4, 5, 3, 5, 4, 2, 4, 3, 6, 4, 5, 4, 2, 4, 3, 2, 4, 5, 5, 3, 3, 3, 5, 3, 8, 6, 3, 3, 2, 3, 6, 5, 5, 9, 5, 7, 3, 5, 3, 7, 5, 7, 8, 7, 3, 6, 6, 5, 4, 9, 2, 4, 3, 3, 3, 4, 4, 6, 5, 4, 4, 4, 3, 5, 3, 3, 3, 4, 3, 5, 7, 4, 5, 4, 6, 5, 5, 3, 10, 4, 4, 5, 4, 4, 5, 4, 4, 3, 4, 5, 4, 8, 3, 2, 6, 3, 4, 4, 3, 3, 3, 4, 7, 2, 2, 4, 6, 2, 6, 3, 5, 5, 9, 5, 3, 3, 5, 5, 4, 5, 8, 5, 3, 3, 5, 4, 6, 3, 2, 8, 4, 3, 8, 6, 9, 5, 6, 4, 5, 2, 2, 8, 2, 3, 4, 3, 5, 3, 6, 7, 4, 7, 7, 8, 7, 2, 8, 4, 3, 2, 5, 4, 3, 6, 3, 4, 2, 8, 5, 3, 5, 4, 6, 3, 4, 5, 8, 3, 2, 2, 3, 3, 5, 3, 3, 4, 2, 3, 4, 4, 6, 5, 2, 4, 4, 3, 3, 9, 3, 3, 4, 3, 4, 2, 5, 5, 3, 5, 2, 5, 3, 4, 4, 6, 4, 2, 8, 7, 6, 3, 4, 6, 3, 4, 4, 4, 4, 8, 6, 5, 7, 2, 2, 5, 5, 5, 3, 7, 3, 2, 6, 4, 2, 6, 4, 3, 3, 8, 4, 2, 8, 2, 6, 6, 4, 4, 3, 3, 2, 2, 4, 3, 3, 5, 3, 3, 2, 10, 4, 4, 4, 3, 2, 3, 3, 3, 6, 4, 5, 6, 8, 7, 3, 3, 3, 5, 2, 5, 2, 3, 2, 4, 3, 4, 2, 2, 5, 4, 5, 5, 2, 2, 5, 3, 3, 7, 7, 4, 5, 3, 6, 3, 7, 6, 3, 2, 2, 2, 5, 7, 3, 7, 5, 4, 6, 3, 7, 7, 4, 4, 2, 3, 3, 4, 3, 6, 4, 4, 2, 4, 5, 2, 2, 5, 5, 5, 4, 3, 5, 6, 2, 5, 2, 8, 4, 4, 2, 5, 5, 7, 3, 3, 4, 5, 3, 3, 5, 6, 6, 4, 2, 2, 3, 3, 4, 2, 5, 3, 2, 5, 2, 4, 8, 6, 3, 4, 6, 2, 4, 4, 3, 5, 2, 4, 5, 6, 3, 4, 9, 2, 5, 2, 2, 7, 8, 5, 3, 3, 5, 5, 4, 6, 4, 2, 4, 5, 8, 5, 4, 5, 5, 7, 4, 3, 7, 5, 3, 4, 9, 3, 4, 6, 3, 5, 5, 5, 3, 2, 2, 4, 3, 5, 6, 4, 3, 4, 5, 4, 4, 4, 4, 2, 3, 5, 3, 4, 4, 7, 3, 4, 4, 3, 4, 5, 5, 5, 2, 4, 6, 4, 3, 3, 3, 5, 8, 2, 5, 6, 5, 6, 3, 2, 2, 4, 2, 8, 5, 4, 7, 6, 4, 4, 7, 6, 5, 4, 6, 2, 4, 3, 5, 6, 2, 5, 4, 3, 2, 7, 6, 4, 5, 6, 5, 5, 4, 4, 5, 8, 4, 4, 3, 6, 2, 2, 9, 3, 3, 4, 4, 5, 6, 3, 6, 3, 5, 5, 2, 9, 7, 6, 2, 4, 6, 5, 3, 2, 4, 3, 2, 8, 6, 8, 2, 5, 4, 3, 6, 5, 2, 2, 3, 6, 4, 5, 7, 4, 4, 5, 6, 3, 4, 6, 5, 2, 5, 3, 5, 9, 7, 5, 3, 6, 5, 5, 3, 2, 3, 3, 4, 5, 2, 7, 5, 7, 3, 3, 5, 4, 2, 8, 2, 3, 3, 2, 4, 5, 3, 4, 4, 7, 3, 4, 6, 4, 4, 4, 4, 3, 5, 6, 5, 3, 5, 4, 5, 5, 4, 5, 5, 4, 2, 2, 3, 2, 3, 3, 7, 2, 7, 3, 6, 7, 3, 5, 2, 3, 6, 3, 2, 2, 3, 3, 6, 4, 4, 4, 3, 3, 5, 3, 5, 4, 2, 3, 5, 4, 6, 2, 3, 4, 6, 3, 3, 2, 7, 5, 3, 2, 3, 7, 3, 6, 3, 3, 4, 4, 3, 7, 3, 3, 2, 5, 2, 5, 3, 9, 4, 2, 5, 4, 2, 3, 4, 3, 4, 3, 6, 3, 4, 5, 7, 2, 5, 6, 10, 3, 7, 9, 4, 3, 3, 4, 7, 2, 6, 2, 3, 7, 2, 3, 6, 4, 8, 4, 4, 3, 4, 5, 8, 6, 2, 4, 4, 7, 9, 3, 2, 6, 3, 6, 5, 6, 3, 3, 6, 8, 4, 3, 8, 2, 6, 3, 5, 2, 3, 6, 3, 4, 6, 5, 3, 4, 4, 7, 2, 5, 6, 3, 6, 4, 4, 2, 2, 9, 4, 4, 5, 4, 2, 5, 2, 4, 3, 2, 4, 5, 5, 3, 3, 3, 3, 4, 3, 4, 2, 4, 9, 2, 3, 3, 3, 4, 3, 5, 2, 3, 4, 4, 3, 3, 5, 5, 2, 3, 2, 4, 5, 3, 2, 7, 4, 4, 5, 6, 4, 4, 6, 3, 3, 6, 1, 5, 5, 2, 4, 3, 3, 4, 7, 3, 4, 3, 4, 6, 4, 4, 4, 7, 6, 7, 4, 4, 6, 6, 4, 5, 5, 2, 3, 3, 5, 3, 5, 4, 4, 4, 4, 5, 3, 6, 4, 5, 6, 4, 3, 5, 6, 2, 2, 6, 6, 2, 3, 5, 4, 7, 3, 2, 3, 3, 4, 5, 5, 6, 4, 5, 4, 4, 4, 4, 3, 6, 2, 3, 4, 2, 5, 4, 3, 3, 7, 6, 4, 10, 5, 3, 3, 6, 5, 3, 5, 4, 5, 2, 3, 2, 3, 6, 5, 4, 4, 9, 3, 5, 5, 5, 10, 5, 7, 3, 3, 4, 5, 3, 4, 4, 3, 5, 9, 3, 4, 2, 4, 3, 3, 6, 8, 3, 4, 5, 3, 2, 3, 5, 9, 5, 6, 3, 2, 5, 4, 4, 5, 3, 3, 4, 6, 5, 3, 3, 4, 3, 6, 2, 3, 5, 6, 4, 2, 5, 3, 3, 4, 6, 4, 3, 3, 4, 8, 4, 3, 2, 5, 7, 3, 5, 4, 2, 4, 3, 2, 4, 2, 4, 6, 4, 2, 5, 3, 2, 3, 3, 3, 3, 4, 6, 3, 4, 6, 6, 7, 5, 3, 2, 3, 6, 3, 3, 4, 6, 2, 6, 5, 7, 4, 3, 6, 2, 2, 5, 4, 4, 3, 8, 7, 3, 6, 5, 5, 4, 5, 4, 6, 5, 5, 4, 5, 6, 3, 5, 4, 3, 7, 2, 3, 4, 4, 5, 5, 3, 9, 5, 4, 7, 3, 3, 5, 2, 4, 3, 3, 3, 4, 7, 4, 6, 5, 4, 4, 5, 9, 2, 7, 2, 3, 5, 8, 6, 4, 2, 5, 2, 6, 4, 8, 4, 7, 3, 5, 3, 5, 4, 4, 3, 4, 5, 4, 7, 3, 5, 4, 4, 7, 5, 3, 4, 3, 5, 4, 7, 5, 3, 2, 4, 6, 3, 6, 3, 5, 7, 9, 6, 2, 6, 2, 3, 7, 5, 6, 9, 7, 3, 4, 4, 6, 4, 2, 8, 3, 4, 10, 2, 5, 4, 4, 5, 5, 6, 4, 6, 3, 7, 2, 3, 3, 8, 3, 3, 4, 4, 4, 6, 11, 2, 7, 5, 4, 5, 4, 6, 3, 3, 6, 8, 4, 5, 3, 4, 3, 4, 5, 3, 3, 5, 4, 2, 2, 4, 2, 4, 2, 6, 4, 6, 3, 4, 5, 3, 3, 6, 4, 10, 4, 5, 2, 7, 6, 2, 5, 5, 4, 2, 7, 5, 3, 6, 3, 6, 7, 5, 2, 2, 2, 4, 3, 2, 3, 4, 2, 8, 7, 2, 5, 6, 4, 4, 7, 4, 5, 6, 7, 3, 2, 3, 3, 3, 3, 3, 7, 7, 3, 2, 5, 5, 6, 5, 5, 3, 3, 2, 2, 6, 3, 7, 5, 6, 4, 4, 5, 5, 7, 4, 5, 3, 3, 3, 6, 3, 5, 2, 4, 6, 8, 4, 5, 5, 2, 3, 3, 10, 7, 8, 5, 6, 5, 3, 4, 4, 3, 6, 5, 2, 5, 6, 5, 8, 3, 9, 6, 6, 4, 2, 7, 2, 6, 4, 5, 2, 5, 3, 2, 3, 3, 9, 7, 4, 7, 6, 3, 2, 5, 4, 2, 10, 4, 8, 5, 6, 4, 4, 4, 2, 5, 2, 3, 2, 4, 4, 4, 5, 4, 4, 4, 3, 5, 3, 3, 4, 4, 5, 3, 6, 6, 5, 8, 4, 8, 3, 3, 7, 3, 3, 2, 5, 2, 5, 4, 5, 2, 4, 6, 3, 2, 2, 4, 2, 4, 2, 2, 2, 2, 9, 2, 4, 8, 2, 4, 4, 3, 3, 6, 4, 3, 8, 3, 9, 3, 3, 5, 2, 4, 2, 3, 5, 6, 2, 4, 5, 2, 7, 3, 3, 3, 4, 2, 3, 2, 4, 5, 2, 3, 5, 7, 5, 7, 3, 5, 5, 4, 6, 6, 5, 4, 6, 3, 6, 4, 5, 4, 6, 3, 5, 2, 8, 3, 3, 3, 5, 8, 8, 4, 6, 4, 3, 4, 3, 4, 8, 7, 2, 4, 5, 9, 5, 3, 4, 2, 8, 7, 8, 5, 2, 4, 6, 2, 3, 2, 9, 5, 2, 5, 4, 7, 3, 6, 4, 9, 4, 5, 6, 9, 8, 5, 3, 2, 2, 3, 4, 4, 5, 5, 3, 4, 8, 2, 6, 5, 7, 5, 8, 5, 5, 8, 4, 6, 8, 2, 5, 7, 2, 6, 5, 8, 4, 7, 2, 3, 6, 6, 3, 5, 7, 2, 7, 6, 2, 5, 3, 3, 5, 4, 6, 6, 3, 7, 5, 6, 5, 4, 4, 3, 2, 4, 8, 4, 5, 3, 3, 5, 5, 2, 3, 2, 6, 4, 3, 4, 4, 2, 3, 5, 3, 7, 3, 3, 8, 5, 3, 7, 2, 2, 4, 5, 8, 4, 8, 5, 4, 3, 3, 3, 2, 5, 3, 6, 3, 5, 4, 4, 3, 5, 4, 2, 2, 5, 6, 4, 6, 2, 4, 3, 5, 8, 5, 5, 4, 5, 8, 3, 3, 2, 8, 2, 4, 6, 2, 2, 4, 4, 3, 3, 4, 7, 4, 4, 4, 4, 2, 8, 5, 4, 8, 3, 4, 3, 4, 8, 5, 5, 6, 5, 6, 6, 4, 3, 8, 3, 4, 6, 4, 6, 3, 3, 3, 5, 2, 9, 3, 6, 4, 7, 4, 2, 4, 4, 2, 8, 3, 5, 3, 4, 4, 4, 5, 7, 3, 6, 7, 2, 6, 10, 2, 4, 2, 5, 7, 4, 4, 5, 4, 5, 3, 3, 3, 8, 4, 2, 4, 5, 5, 3, 3, 4, 6, 3, 5, 3, 5, 2, 4, 4, 4, 7, 7, 5, 5, 8, 5, 6, 2, 3, 3, 5, 4, 4, 7, 3, 6, 5, 6, 4, 5, 4, 4, 3, 3, 3, 9, 7, 4, 4, 5, 2, 5, 4, 5, 7, 5, 3, 4, 5, 3, 5, 3, 3, 3, 6, 2, 6, 4, 7, 6, 8, 6, 4, 2, 5, 5, 5, 3, 6, 2, 3, 6, 4, 4, 11, 4, 2, 5, 6, 4, 2, 5, 3, 4, 4, 4, 2, 5, 4, 3, 4, 2, 3, 3, 2, 7, 4, 7, 7, 2, 5, 4, 7, 3, 6, 4, 6, 4, 4, 2, 2, 2, 4, 3, 4, 3, 5, 6, 7, 6, 2, 5, 3, 4, 2, 5, 4, 6, 5, 3, 4, 5, 2, 4, 7, 3, 7, 4, 4, 9, 3, 6, 3, 3, 9, 4, 6, 2, 7, 4, 3, 4, 6, 4, 2, 3, 4, 3, 5, 3, 2, 2, 4, 3, 4, 2, 4, 6, 3, 5, 3, 3, 9, 4, 3, 6, 2, 4, 3, 5, 6, 4, 2, 7, 8, 4, 2, 3, 3, 4, 3, 4, 3, 5, 2, 2, 3, 3, 2, 4, 5, 4, 7, 2, 4, 8, 4, 3, 3, 4, 2, 5, 6, 5, 5, 8, 5, 3, 2, 3, 2, 6, 5, 4, 3, 2, 4, 4, 5, 5, 3, 5, 5, 4, 3, 4, 6, 3, 4, 3, 4, 3, 4, 5, 3, 2, 3, 4, 3, 2, 3, 4, 3, 7, 5, 4, 7, 5, 4, 3, 2, 3, 5, 4, 4, 5, 5, 7, 7, 7, 3, 6, 6, 7, 9, 4, 2, 5, 5, 5, 6, 5, 3, 3, 3, 4, 3, 5, 3, 4, 2, 3, 10, 2, 3, 2, 4, 4, 7, 4, 3, 7, 10, 4, 3, 7, 4, 5, 6, 6, 5, 4, 6, 5, 4, 6, 5, 5, 5, 4, 7, 10, 5, 2, 6, 2, 9, 4, 4, 7, 6, 7, 5, 4, 5, 4, 6, 3, 5, 4, 4, 5, 4, 3, 6, 6, 2, 3, 2, 7, 2, 3, 5, 12, 3, 5, 4, 3, 6, 3, 4, 4, 2, 9, 5, 2, 7, 8, 5, 4, 4, 5, 7, 7, 5, 5, 6, 3, 6, 2, 4, 7, 6, 3, 5, 8, 10, 4, 6, 3, 4, 2, 3, 6, 3, 5, 3, 3, 4, 4, 3, 4, 5, 5, 5, 3, 6, 9, 3, 6, 3, 9, 2, 4, 4, 8, 3, 4, 2, 5, 4, 8, 2, 3, 3, 2, 4, 2, 4, 2, 4, 5, 4, 6, 7, 6, 3, 5, 3, 5, 2, 2, 8, 4, 5, 4, 4, 4, 4, 2, 6, 5, 6, 4, 5, 6, 2, 5, 3, 2, 5, 4, 10, 2, 3, 6, 2, 3, 8, 2, 2, 5, 4, 5, 4, 3, 4, 7, 5, 2, 4, 3, 4, 3, 5, 3, 4, 4, 5, 7, 7, 5, 4, 3, 3, 3, 2, 4, 4, 5, 5, 2, 6, 4, 2, 3, 3, 11, 2, 10, 2, 3, 4, 3, 4, 7, 7, 5, 6, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 5, 4, 4, 5, 2, 9, 2, 2, 4, 6, 4, 3, 4, 7, 5, 5, 4, 9, 5, 7, 5, 10, 3, 4, 4, 8, 3, 5, 4, 3, 5, 3, 4, 6, 6, 3, 4, 3, 2, 2, 3, 2, 3, 3, 9, 2, 3, 4, 6, 5, 4, 2, 8, 2, 8, 2, 5, 2, 4, 7, 2, 6, 5, 7, 4, 6, 4, 6, 7, 8, 3, 7, 9, 4, 7, 2, 4, 6, 3, 5, 4, 9, 4, 7, 4, 7, 3, 3, 6, 5, 3, 6, 3, 9, 3, 3, 5, 3, 3, 6, 5, 5, 5, 4, 2, 5, 4, 10, 4, 2, 3, 4, 4, 7, 3, 4, 4, 5, 4, 4, 5, 3, 3, 2, 6, 2, 2, 4, 3, 9, 8, 3, 4, 5, 4, 3, 4, 8, 6, 3, 2, 2, 3, 8, 4, 2, 2, 6, 3, 3, 4, 6, 5, 5, 6, 4, 9, 4, 4, 7, 6, 4, 2, 3, 4, 5, 4, 5, 4, 3, 2, 3, 4, 4, 4, 2, 2, 6, 2, 2, 4, 6, 2, 5, 2, 4, 2, 8, 2, 8, 3, 6, 3, 4, 3, 2, 7, 2, 11, 5, 5, 3, 2, 2, 4, 5, 3, 7, 3, 2, 7, 4, 5, 4, 2, 6, 2, 5, 6, 9, 5, 4, 4, 4, 4, 3, 5, 3, 6, 6, 7, 8, 2, 5, 6, 5, 5, 3, 3, 9, 3, 2, 3, 6, 6, 5, 2, 2, 4, 8, 3, 5, 3, 3, 3, 3, 4, 9, 4, 3, 4, 5, 2, 5, 7, 3, 4, 5, 4, 5, 3, 3, 7, 9, 4, 7, 2, 3, 2, 2, 4, 2, 3, 5, 5, 5, 3, 7, 2, 5, 5, 6, 7, 7, 3, 2, 4, 5, 4, 4, 4, 5, 3, 2, 5, 2, 2, 4, 5, 2, 4, 7, 3, 2, 3, 4, 2, 7, 6, 2, 4, 3, 4, 7, 6, 5, 3, 2, 3, 3, 4, 2, 2, 3, 6, 4, 6, 3, 3, 5, 2, 4, 3, 8, 5, 6, 4, 6, 6, 3, 5, 7, 2, 3, 2, 4, 4, 2, 4, 5, 3, 3, 3, 2, 7, 3, 3, 3, 3, 2, 7, 3, 3, 3, 2, 5, 2, 8, 7, 3, 2, 6, 2, 5, 3, 3, 8, 5, 3, 4, 3, 5, 2, 5, 3, 4, 5, 5, 5, 2, 3, 4, 4, 2, 2, 4, 4, 2, 6, 5, 4, 2, 2, 4, 4, 3, 3, 5, 4, 2, 3, 3, 3, 7, 12, 5, 4, 3, 4, 3, 2, 9, 6, 7, 2, 3, 5, 5, 2, 6, 5, 5, 7, 4, 5, 4, 2, 6, 3, 6, 5, 9, 3, 3, 4, 3, 2, 5, 6, 5, 5, 3, 6, 6, 4, 7, 2, 5, 7, 4, 5, 6, 3, 6, 7, 3, 3, 4, 5, 3, 3, 4, 2, 5, 5, 3, 5, 4, 6, 4, 4, 6, 5, 5, 5, 3, 3, 6, 4, 8, 4, 4, 4, 4, 5, 2, 4, 3, 2, 4, 3, 2, 8, 5, 5, 5, 6, 4, 4, 4, 3, 6, 6, 6, 2, 3, 3, 2, 2, 8, 3, 2, 7, 2, 4, 2, 2, 4, 3, 5, 4, 2, 5, 6, 5, 8, 6, 3, 4, 6, 3, 4, 4, 3, 5, 4, 5, 3, 5, 6, 5, 3, 3, 3, 2, 6, 3, 4, 4, 3, 3, 5, 6, 4, 3, 6, 3, 2, 8, 6, 6, 2, 4, 3, 4, 6, 4, 2, 3, 8, 8, 6, 6, 2, 5, 2, 2, 4, 7, 3, 5, 2, 9, 4, 10, 3, 5, 6, 6, 6, 4, 5, 3, 6, 2, 3, 10, 4, 8, 5, 4, 4, 6, 3, 7, 6, 4, 5, 4, 6, 2, 4, 2, 4, 2, 7, 2, 3, 2, 7, 4, 7, 3, 5, 2, 2, 3, 5, 6, 5, 8, 6, 3, 4, 7, 4, 2, 3, 2, 5, 3, 5, 8, 2, 3, 4, 5, 4, 6, 4, 4, 8, 7, 5, 4, 4, 2, 4, 4, 5, 4, 4, 3, 2, 6, 6, 9, 7, 2, 7, 6, 5, 5, 4, 4, 7, 4, 3, 2, 3, 4, 4, 3, 3, 3, 9, 7, 6, 6, 3, 7, 3, 7, 2, 7, 3, 3, 4, 3, 4, 3, 6, 7, 6, 6, 3, 4, 2, 4, 3, 8, 4, 4, 2, 4, 4, 4, 5, 5, 2, 5, 4, 6, 7, 6, 3, 4, 5, 3, 3, 5, 4, 4, 2, 4, 3, 4, 3, 3, 4, 5, 4, 7, 3, 3, 4, 8, 4, 9, 5, 2, 4, 2, 4, 7, 2, 4, 3, 6, 3, 4, 5, 4, 4, 6, 5, 5, 4, 7, 10, 7, 3, 8, 3, 2, 4, 3, 2, 3, 4, 7, 4, 7, 4, 2, 5, 3, 6, 4, 6, 4, 9, 6, 8, 6, 3, 4, 5, 7, 6, 5, 2, 3, 5, 4, 3, 2, 4, 6, 2, 4, 5, 4, 2, 3, 3, 5, 3, 2, 8, 6, 5, 4, 4, 4, 3, 3, 3, 5, 2, 10, 6, 3, 3, 4, 2, 4, 6, 6, 5, 5, 4, 8, 2, 4, 3, 3, 3, 4, 4, 4, 8, 3, 5, 4, 7, 2, 6, 6, 3, 6, 3, 5, 7, 11, 6, 6, 4, 5, 3, 3, 6, 5, 2, 10, 4, 3, 4, 4, 4, 6, 6, 2, 4, 4, 4, 3, 8, 4, 7, 7, 6, 2, 4, 5, 6, 4, 8, 5, 5, 2, 5, 3, 3, 3, 3, 4, 2, 3, 4, 6, 3, 6, 4, 4, 5, 2, 3, 6, 3, 4, 5, 3, 3, 5, 3, 6, 6, 3, 2, 10, 2, 5, 5, 5, 4, 4, 3, 2, 3, 5, 4, 3, 5, 5, 2, 6, 4, 4, 5, 8, 4, 2, 4, 7, 3, 4, 2, 4, 3, 4, 6, 3, 5, 3, 6, 3, 4, 5, 3, 7, 4, 3, 4, 4, 5, 5, 4, 4, 3, 5, 4, 4, 3, 2, 5, 3, 7, 4, 5, 3, 2, 4, 2, 2, 4, 2, 3, 6, 8, 6, 6, 2, 2, 2, 3, 6, 8, 4, 2, 4, 4, 2, 4, 2, 3, 5, 4, 3, 7, 2, 5, 5, 3, 6, 3, 2, 6, 6, 3, 2, 4, 5, 4, 4, 3, 2, 2, 2, 3, 3, 5, 3, 9, 5, 4, 5, 5, 3, 5, 5, 6, 6, 2, 5, 3, 7, 5, 6, 3, 3, 6, 3, 4, 4, 8, 2, 5, 3, 3, 3, 2, 3, 2, 9, 6, 6, 5, 4, 4, 4, 2, 9, 6, 2, 6, 4, 5, 4, 2, 6, 6, 3, 3, 3, 2, 7, 2, 7, 6, 9, 5, 5, 5, 6, 4, 4, 5, 3, 3, 5, 2, 3, 5, 3, 3, 4, 8, 2, 6, 4, 2, 3, 2, 5, 3, 5, 5, 5, 6, 4, 7, 7, 2, 2, 3, 5, 2, 4, 5, 3, 2, 7, 5, 5, 8, 9, 5, 4, 5, 4, 4, 9, 3, 5, 4, 7, 4, 5, 4, 2, 4, 2, 5, 3, 2, 6, 2, 4, 5, 3, 7, 5, 4, 6, 3, 3, 4, 9, 3, 5, 8, 6, 2, 6, 2, 2, 8, 7, 5, 4, 6, 3, 3, 2, 6, 2, 4, 7, 7, 3, 4, 5, 7, 11, 6, 3, 6, 9, 4, 3, 6, 3, 2, 8, 8, 4, 7, 2, 3, 3, 6, 4, 6, 5, 4, 3, 2, 5, 3, 4, 7, 4, 4, 6, 5, 2, 7, 8, 3, 4, 3, 4, 3, 4, 7, 2, 10, 3, 4, 4, 4, 3, 3, 2, 4, 7, 6, 5, 4, 2, 3, 6, 5, 3, 5, 4, 7, 9, 7, 6, 4, 4, 4, 3, 6, 3, 4, 6, 3, 7, 2, 4, 2, 3, 3, 5, 4, 3, 7, 2, 3, 4, 5, 5, 7, 2, 5, 5, 3, 3, 7, 5, 6, 6, 3, 4, 3, 7, 4, 3, 9, 9, 9, 4, 3, 10, 2, 4, 2, 4, 7, 5, 4, 2, 4, 3, 3, 5, 7, 6, 8, 6, 4, 5, 7, 3, 8, 8, 3, 6, 5, 4, 4, 4, 7, 5, 6, 3, 4, 5, 3, 2, 7, 7, 6, 5, 4, 4, 3, 3, 3, 3, 5, 3, 3, 2, 2, 3, 6, 3, 5, 4, 5, 4, 7, 4, 2, 4, 4, 4, 4, 6, 3, 6, 3, 4, 3, 2, 4, 3, 3, 4, 2, 3, 9, 4, 6, 6, 8, 5, 7, 5, 6, 3, 4, 4, 2, 5, 3, 2, 8, 4, 10, 4, 3, 4, 8, 4, 8, 4, 7, 3, 3, 4, 4, 4, 4, 9, 4, 4, 2, 3, 3, 3, 3, 6, 3, 5, 2, 3, 3, 6, 5, 3, 3, 4, 6, 2, 2, 3, 2, 6, 3, 5, 7, 5, 5, 2, 5, 5, 5, 4, 5, 2, 3, 2, 5, 3, 2, 4, 2, 2, 3, 8, 7, 8, 2, 6, 2, 2, 5, 4, 5, 3, 3, 3, 6, 3, 6, 5, 2, 2, 2, 6, 6, 4, 5, 2, 4, 6, 4, 4, 5, 6, 7, 4, 5, 9, 5, 6, 3, 3, 3, 3, 9, 7, 3, 5, 6, 6, 4, 2, 2, 5, 6, 3, 2, 7, 3, 3, 8, 4, 4, 4, 5, 3, 4, 3, 5, 9, 5, 7, 3, 3, 5, 2, 5, 4, 3, 4, 3, 3, 6, 5, 4, 2, 8, 9, 4, 3, 2, 9, 2, 3, 5, 7, 5, 6, 7, 5, 4, 5, 3, 6, 3, 3, 4, 3, 5, 4, 2, 5, 2, 2, 2, 4, 3, 3, 3, 5, 4, 3, 5, 2, 3, 6, 2, 4, 3, 4, 6, 4, 3, 2, 9, 3, 7, 5, 3, 5, 4, 8, 3, 2, 3, 5, 6, 2, 5, 2, 5, 4, 2, 3, 3, 2, 3, 3, 6, 5, 3, 6, 4, 3, 3, 6, 7, 4, 3, 4, 9, 4, 5, 7, 4, 3, 2, 7, 7, 5, 4, 6, 4, 3, 3, 4, 4, 3, 4, 4, 4, 2, 3, 3, 5, 2, 5, 3, 2, 3, 5, 4, 3, 5, 8, 3, 7, 3, 5, 4, 5, 5, 10, 2, 2, 4, 4, 4, 3, 2, 5, 6, 8, 4, 4, 3, 3, 6, 6, 5, 4, 8, 8, 2, 2, 3, 3, 2, 5, 2, 7, 6, 2, 5, 4, 5, 9, 4, 2, 3, 2, 5, 6, 6, 6, 5, 4, 3, 4, 2, 5, 4, 6, 4, 3, 2, 5, 4, 2, 9, 3, 8, 2, 2, 5, 5, 6, 4, 2, 4, 3, 5, 5, 3, 5, 4, 6, 3, 2, 6, 8, 2, 3, 5, 2, 3, 5, 6, 4, 4, 4, 3, 3, 4, 6, 9, 3, 2, 2, 5, 7, 3, 10, 4, 3, 2, 5, 2, 5, 3, 5, 2, 6, 7, 4, 4, 6, 7, 2, 7, 5, 4, 4, 6, 2, 4, 5, 3, 3, 2, 7, 4, 3, 2, 4, 5, 3, 2, 6, 3, 6, 5, 6, 2, 3, 2, 6, 4, 2, 4, 2, 4, 4, 8, 5, 3, 3, 3, 5, 5, 9, 4, 3, 6, 5, 8, 3, 3, 3, 4, 6, 2, 3, 4, 3, 7, 3, 7, 2, 3, 2, 2, 4, 4, 9, 4, 3, 5, 4, 2, 2, 4, 8, 8, 3, 5, 7, 2, 3, 8, 5, 4, 5, 3, 4, 7, 6, 2, 6, 2, 5, 6, 2, 5, 3, 4, 3, 6, 5, 3, 4, 6, 2, 2, 5, 2, 6, 5, 5, 4, 6, 5, 6, 6, 4, 6, 3, 4, 3, 4, 2, 5, 5, 9, 6, 3, 5, 3, 6, 3, 5, 5, 4, 5, 2, 2, 7, 2, 3, 6, 6, 4, 2, 6, 3, 3, 2, 7, 4, 4, 5, 5, 7, 6, 2, 5, 3, 5, 9, 5, 8, 3, 4, 7, 4, 4, 5, 5, 2, 3, 3, 4, 6, 2, 5, 5, 4, 2, 4, 2, 2, 4, 6, 3, 4, 3, 2, 5, 3, 5, 6, 6, 5, 2, 2, 4, 2, 4, 2, 4, 2, 5, 4, 3, 2, 5, 2, 5, 5, 4, 3, 5, 4, 4, 3, 7, 3, 6, 7, 5, 6, 6, 3, 5, 6, 5, 4, 6, 3, 8, 4, 6, 4, 5, 4, 3, 6, 7, 7, 5, 2, 5, 3, 3, 5, 5, 5, 4, 8, 2, 2, 4, 5, 4, 4, 4, 5, 3, 4, 4, 4, 3, 5, 3, 6, 6, 3, 9, 7, 5, 3, 8, 5, 3, 4, 3, 2, 7, 2, 2, 2, 6, 3, 3, 2, 5, 3, 3, 5, 5, 3, 4, 2, 3, 2, 6, 3, 7, 2, 4, 3, 5, 6, 7, 6, 5, 4, 4, 6, 6, 3, 5, 2, 5, 4, 4, 3, 3, 4, 4, 2, 4, 4, 2, 6, 6, 6, 7, 3, 5, 7, 5, 4, 6, 4, 4, 3, 2, 2, 4, 3, 2, 4, 2, 5, 4, 6, 5, 4, 5, 2, 4, 8, 5, 2, 2, 4, 4, 3, 2, 4, 4, 2, 5, 4, 6, 4, 5, 3, 4, 5, 4, 3, 5, 3, 3, 3, 2, 8, 2, 5, 2, 5, 4, 6, 4, 2, 3, 3, 4, 3, 6, 5, 6, 3, 6, 6, 5, 5, 5, 3, 3, 4, 4, 3, 3, 6, 2, 2, 2, 3, 5, 4, 4, 3, 2, 3, 4, 4, 4, 7, 4, 3, 7, 4, 2, 4, 3, 5, 6, 7, 2, 4, 2, 4, 6, 3, 6, 3, 4, 3, 5, 4, 8, 4, 4, 2, 2, 7, 4, 3, 3, 8, 4, 3, 6, 4, 8, 4, 7, 1, 5, 3, 6, 3, 6, 6, 4, 7, 3, 3, 4, 5, 5, 2, 4, 3, 5, 3, 8, 7, 4, 7, 4, 5, 8, 8, 6, 5, 4, 8, 2, 5, 3, 2, 7, 4, 5, 4, 7, 3, 5, 5, 5, 3, 4, 5, 5, 2, 5, 4, 4, 4, 6, 8, 2, 8, 3, 7, 3, 6, 4, 5, 4, 6, 4, 3, 4, 5, 5, 4, 4, 4, 5, 7, 4, 4, 4, 6, 8, 6, 4, 3, 2, 5, 7, 7, 2, 4, 3, 3, 2, 4, 3, 5, 5, 4, 6, 6, 2, 3, 3, 2, 8, 8, 7, 6, 5, 6, 2, 5, 4, 5, 4, 7, 3, 3, 3, 2, 4, 8, 3, 5, 3, 8, 3, 5, 4, 4, 7, 6, 2, 5, 3, 4, 3, 2, 4, 4, 5, 6, 7, 3, 3, 3, 4, 4, 5, 7, 2, 5, 2, 5, 6, 3, 2, 7, 3, 6, 3, 2, 5, 3, 5, 2, 2, 3, 3, 2, 3, 7, 3, 5, 3, 9, 5, 3, 4, 3, 4, 3, 6, 2, 3, 4, 4, 4, 4, 3, 7, 5, 8, 4, 7, 2, 3, 4, 3, 4, 5, 2, 4, 3, 6, 3, 3, 4, 2, 4, 6, 4, 3, 4, 4, 5, 6, 3, 2, 3, 3, 5, 2, 5, 6, 3, 4, 3, 4, 2, 3, 3, 3, 3, 2, 2, 6, 4, 6, 2, 5, 6, 2, 2, 7, 5, 5, 3, 3, 7, 2, 2, 8, 4, 2, 2, 4, 6, 8, 4, 5, 8, 8, 5, 3, 2, 4, 4, 5, 2, 4, 5, 2, 4, 5, 6, 7, 3, 3, 6, 2, 3, 6, 5, 2, 3, 3, 2, 4, 3, 3, 5, 3, 4, 6, 2, 3, 5, 2, 4, 5, 8, 6, 6, 2, 5, 8, 5, 7, 3, 2, 2, 4, 5, 4, 3, 4, 6, 3, 4, 3, 2, 3, 3, 5, 5, 3, 6, 3, 2, 7, 4, 8, 6, 4, 5, 4, 3, 2, 2, 4, 5, 7, 6, 2, 4, 5, 4, 6, 2, 4, 5, 3, 2, 5, 5, 4, 3, 6, 3, 4, 8, 2, 6, 2, 3, 3, 4, 4, 6, 3, 5, 5, 2, 3, 8, 3, 6, 3, 6, 4, 4, 5, 3, 6, 4, 5, 4, 2, 4, 5, 4, 4, 2, 9, 4, 3, 6, 3, 7, 6, 5, 5, 3, 3, 7, 4, 3, 3, 3, 7, 3, 2, 3, 6, 4, 7, 3, 5, 5, 6, 2, 5, 4, 7, 3, 4, 5, 2, 2, 3, 6, 5, 4, 2, 6, 5, 4, 4, 2, 5, 4, 4, 3, 5, 2, 2, 4, 5, 2, 3, 4, 5, 2, 5, 5, 2, 2, 2, 3, 6, 4, 3, 6, 3, 5, 6, 6, 2, 4, 6, 6, 6, 3, 3, 2, 5, 4, 3, 6, 2, 4, 7, 4, 3, 7, 7, 8, 5, 6, 3, 3, 5, 3, 9, 3, 5, 2, 4, 3, 2, 2, 3, 3, 7, 4, 3, 5, 7, 5, 4, 2, 4, 5, 3, 3, 5, 3, 2, 5, 5, 4, 7, 3, 5, 5, 3, 9, 4, 2, 4, 7, 4, 4, 2, 4, 5, 5, 4, 4, 2, 2, 6, 4, 5, 4, 5, 6, 4, 4, 5, 2, 4, 9, 2, 8, 5, 3, 3, 4, 4, 2, 3, 2, 4, 5, 5, 7, 2, 4, 2, 6, 3, 6, 8, 4, 7, 3, 4, 4, 6, 6, 5, 3, 7, 2, 6, 3, 5, 3, 8, 5, 4, 9, 6, 6, 6, 6, 4, 5, 2, 5, 6, 3, 4, 5, 4, 8, 5, 2, 2, 4, 3, 3, 4, 3, 4, 8, 7, 4, 6, 3, 5, 4, 4, 4, 4, 5, 6, 6, 4, 2, 3, 3, 3, 3, 6, 3, 6, 3, 2, 5, 3, 3, 8, 2, 3, 3, 4, 4, 3, 4, 2, 4, 3, 2, 2, 6, 4, 7, 5, 2, 5, 5, 6, 4, 9, 7, 2, 4, 3, 6, 5, 2, 7, 4, 3, 5, 5, 5, 3, 2, 6, 4, 3, 6, 4, 2, 5, 3, 8, 5, 3, 7, 3, 3, 8, 3, 4, 3, 3, 3, 4, 5, 6, 3, 7, 3, 6, 7, 5, 5, 2, 4, 3, 3, 4, 3, 8, 2, 1, 3, 3, 5, 5, 9, 8, 3, 3, 3, 6, 4, 2, 3, 6, 2, 3, 2, 3, 3, 6, 3, 2, 5, 3, 7, 8, 4, 4, 4, 6, 3, 2, 3, 5, 3, 4, 3, 6, 4, 6, 3, 2, 2, 3, 4, 2, 8, 3, 6, 4, 5, 5, 4, 4, 5, 3, 7, 3, 6, 5, 7, 4, 4, 3, 3, 4, 7, 4, 5, 3, 3, 5, 2, 2, 3, 5, 3, 9, 6, 2, 3, 7, 4, 3, 4, 3, 2, 5, 7, 6, 4, 3, 4, 3, 4, 3, 3, 3, 3, 4, 6, 2, 8, 4, 5, 2, 6, 5, 4, 5, 8, 2, 3, 7, 6, 6, 4, 2, 7, 2, 7, 7, 5, 3, 3, 4, 2, 4, 5, 4, 5, 4, 4, 2, 3, 4, 6, 5, 6, 2, 6, 5, 5, 2, 6, 2, 4, 5, 6, 3, 7, 3, 3, 2, 4, 3, 11, 2, 4, 4, 7, 5, 5, 4, 6, 3, 6, 5, 5, 4, 3, 2, 4, 5, 3, 7, 3, 3, 2, 3, 3, 4, 4, 3, 4, 4, 6, 6, 3, 4, 2, 3, 3, 4, 4, 5, 6, 5, 5, 9, 6, 4, 3, 5, 8, 4, 6, 3, 3, 5, 5, 4, 3, 4, 4, 2, 2, 8, 4, 6, 2, 4, 3, 2, 5, 10, 7, 4, 9, 3, 3, 4, 6, 2, 3, 7, 4, 5, 2, 5, 6, 3, 3, 4, 2, 4, 10, 3, 4, 4, 4, 4, 2, 4, 5, 5, 2, 6, 6, 7, 8, 5, 4, 4, 4, 2, 4, 6, 2, 5, 5, 6, 4, 5, 5, 2, 2, 5, 4, 2, 4, 3, 7, 5, 4, 4, 4, 5, 3, 4, 2, 3, 3, 3, 8, 3, 8, 3, 3, 4, 5, 5, 6, 3, 5, 4, 4, 7, 7, 3, 5, 4, 9, 7, 5, 4, 4, 7, 2, 7, 6, 3, 5, 3, 2, 3, 5, 4, 8, 2, 8, 6, 6, 3, 6, 3, 4, 4, 7, 9, 2, 4, 7, 8, 3, 5, 3, 5, 3, 4, 3, 5, 5, 4, 3, 2, 4, 3, 4, 2, 4, 8, 8, 5, 8, 2, 4, 3, 5, 8, 6, 4, 4, 3, 4, 5, 2, 9, 5, 5, 5, 2, 2, 3, 7, 3, 2, 4, 3, 2, 4, 8, 8, 4, 7, 4, 3, 2, 5, 3, 6, 3, 5, 4, 5, 6, 9, 6, 3, 3, 4, 5, 5, 3, 2, 5, 2, 5, 2, 2, 6, 5, 2, 2, 9, 4, 7, 6, 4, 2, 4, 3, 4, 3, 3, 5, 2, 4, 6, 3, 8, 8, 5, 4, 3, 4, 3, 5, 6, 4, 4, 4, 6, 4, 4, 4, 3, 4, 4, 8, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 3, 6, 6, 4, 8, 2, 6, 3, 6, 8, 2, 7, 4, 3, 6, 2, 9, 7, 3, 8, 3, 2, 4, 3, 5, 9, 2, 6, 6, 3, 3, 3, 4, 5, 7, 3, 2, 5, 4, 2, 2, 2, 4, 5, 5, 6, 4, 7, 5, 2, 3, 2, 3, 10, 4, 5, 5, 6, 4, 8, 6, 7, 4, 4, 4, 5, 5, 4, 4, 3, 4, 5, 5, 9, 5, 3, 7, 4, 3, 3, 7, 3, 5, 5, 4, 5, 8, 3, 4, 3, 5, 2, 3, 5, 7, 4, 4, 3, 3, 4, 5, 8, 3, 7, 4, 10, 6, 6, 3, 6, 4, 4, 2, 3, 8, 2, 4, 6, 5, 3, 5, 3, 2, 6, 3, 5, 6, 5, 5, 2, 7, 6, 6, 3, 3, 5, 4, 3, 5, 8, 5, 7, 7, 3, 3, 3, 3, 6, 2, 4, 4, 2, 7, 4, 3, 4, 8, 4, 4, 3, 2, 7, 5, 7, 4, 4, 4, 4, 3, 8, 2, 3, 6, 5, 2, 7, 5, 4, 2, 4, 5, 8, 7, 4, 4, 3, 6, 7, 2, 3, 3, 3, 8, 2, 5, 4, 2, 2, 2, 2, 5, 3, 5, 4, 5, 2, 3, 5, 6, 4, 4, 5, 5, 4, 3, 2, 4, 4, 8, 4, 7, 3, 5, 4, 3, 5, 5, 4, 4, 4, 2, 6, 4, 6, 4, 3, 5, 2, 6, 3, 5, 5, 4, 4, 2, 3, 5, 7, 4, 6, 3, 12, 8, 5, 5, 5, 7, 4, 3, 3, 3, 4, 7, 4, 8, 3, 5, 3, 2, 3, 2, 2, 5, 4, 3, 3, 3, 3, 3, 2, 4, 5, 2, 2, 5, 4, 5, 4, 2, 4, 7, 4, 5, 3, 5, 5, 4, 3, 9, 3, 4, 3, 3, 6, 2, 4, 4, 2, 4, 4, 3, 2, 4, 5, 2, 5, 6, 5, 4, 4, 4, 7, 5, 4, 2, 4, 4, 5, 3, 6, 2, 3, 2, 2, 6, 5, 2, 6, 8, 4, 3, 5, 6, 4, 5, 2, 7, 8, 3, 3, 4, 2, 5, 4, 6, 4, 2, 7, 4, 7, 8, 7, 4, 4, 7, 8, 4, 2, 4, 4, 4, 4, 5, 8, 5, 5, 7, 4, 4, 4, 4, 5, 3, 6, 7, 3, 3, 5, 4, 2, 7, 4, 5, 4, 5, 5, 2, 7, 3, 6, 3, 8, 7, 4, 5, 3, 4, 4, 5, 3, 3, 4, 6, 3, 3, 5, 3, 2, 4, 4, 4, 4, 3, 3, 2, 3, 7, 3, 3, 2, 4, 5, 5, 2, 2, 2, 5, 9, 4, 4, 4, 7, 2, 3, 3, 5, 5, 9, 5, 3, 3, 2, 4, 4, 2, 7, 6, 6, 3, 2, 3, 4, 3, 5, 4, 5, 8, 5, 4, 3, 3, 2, 5, 3, 3, 6, 6, 3, 4, 9, 4, 8, 7, 6, 3, 3, 3, 5, 3, 4, 4, 6, 4, 8, 5, 5, 2, 5, 2, 7, 6, 4, 8, 9, 5, 5, 5, 3, 5, 3, 2, 2, 2, 6, 1, 7, 7, 7, 3, 2, 3, 4, 6, 5, 4, 3, 3, 3, 3, 4, 5, 5, 4, 4, 4, 3, 7, 6, 3, 3, 6, 4, 3, 4, 4, 5, 5, 9, 2, 6, 5, 5, 7, 3, 6, 2, 5, 3, 7, 4, 2, 2, 5, 5, 5, 4, 5, 3, 3, 7, 5, 4, 4, 3, 6, 4, 2, 2, 3, 2, 4, 3, 3, 6, 5, 5, 2, 5, 5, 2, 8, 2, 4, 2, 4, 5, 4, 2, 4, 4, 3, 6, 2, 2, 8, 4, 6, 3, 2, 7, 4, 3, 4, 7, 2, 5, 3, 5, 4, 6, 7, 2, 3, 5, 3, 4, 4, 3, 4, 5, 5, 3, 4, 7, 7, 3, 6, 6, 4, 4, 7, 4, 3, 2, 3, 6, 5, 3, 5, 3, 3, 3, 4, 2, 4, 9, 2, 6, 4, 4, 4, 10, 4, 4, 4, 4, 2, 3, 2, 3, 6, 4, 4, 8, 3, 5, 3, 4, 3, 4, 4, 8, 5, 8, 2, 4, 2, 2, 5, 4, 8, 3, 3, 4, 5, 4, 2, 6, 5, 3, 9, 6, 5, 2, 4, 3, 4, 5, 5, 2, 3, 3, 5, 2, 5, 4, 5, 3, 5, 3, 2, 4, 4, 5, 2, 2, 2, 4, 6, 5, 2, 3, 5, 6, 4, 3, 3, 5, 3, 4, 2, 2, 6, 4, 4, 3, 4, 4, 2, 5, 6, 4, 3, 3, 6, 2, 2, 3, 3, 3, 3, 2, 3, 4, 3, 7, 3, 3, 4, 4, 6, 5, 4, 5, 3, 4, 3, 6, 6, 2, 2, 3, 6, 2, 4, 5, 5, 4, 2, 3, 3, 6, 5, 4, 4, 2, 5, 3, 4, 3, 6, 4, 9, 3, 2, 5, 8, 2, 3, 8, 4, 6, 4, 4, 3, 3, 2, 2, 3, 8, 4, 5, 5, 5, 4, 5, 5, 5, 2, 4, 6, 3, 3, 3, 6, 8, 8, 3, 4, 3, 3, 2, 7, 4, 3, 6, 3, 2, 3, 2, 3, 2, 6, 2, 8, 5, 8, 5, 5, 2, 6, 6, 7, 4, 3, 7, 8, 2, 5, 7, 4, 3, 3, 4, 3, 4, 4, 3, 3, 6, 4, 6, 4, 8, 5, 6, 7, 7, 3, 4, 9, 6, 2, 2, 7, 5, 5, 3, 4, 9, 3, 3, 7, 3, 5, 5, 5, 6, 6, 3, 2, 4, 6, 4, 3, 6, 7, 5, 5, 6, 5, 2, 4, 3, 4, 3, 4, 5, 3, 7, 5, 2, 6, 4, 3, 2, 5, 5, 5, 3, 4, 8, 5, 2, 4, 2, 3, 6, 3, 4, 2, 8, 3, 4, 2, 3, 2, 5, 4, 4, 10, 7, 2, 6, 4, 6, 9, 2, 3, 5, 3, 5, 3, 5, 4, 5, 3, 5, 5, 2, 3, 6, 8, 4, 6, 3, 4, 6, 4, 6, 7, 4, 4, 4, 6, 5, 2, 3, 3, 6, 2, 4, 2, 3, 3, 4, 8, 2, 3, 4, 3, 5, 4, 5, 5, 4, 3, 4, 4, 3, 8, 4, 5, 2, 3, 7, 3, 7, 2, 4, 5, 2, 4, 4, 5, 2, 3, 3, 3, 3, 5, 3, 9, 5, 3, 4, 6, 3, 4, 7, 4, 3, 4, 3, 4, 2, 4, 4, 5, 6, 6, 6, 4, 2, 2, 4, 2, 7, 3, 3, 3, 5, 3, 4, 6, 4, 6, 5, 6, 7, 5, 3, 4, 3, 4, 3, 3, 5, 4, 5, 3, 7, 2, 3, 3, 2, 4, 7, 5, 6, 4, 5, 5, 3, 5, 4, 4, 5, 2, 2, 2, 2, 4, 4, 5, 2, 6, 6, 5, 3, 4, 7, 4, 3, 4, 4, 2, 5, 2, 5, 8, 3, 4, 6, 4, 4, 5, 7, 4, 3, 3, 3, 2, 2, 7, 3, 3, 9, 5, 3, 3, 5, 4, 4, 7, 2, 3, 2, 2, 6, 4, 6, 2, 8, 4, 2, 2, 4, 5, 6, 4, 4, 3, 4, 2, 4, 5, 4, 3, 4, 4, 3, 3, 3, 5, 5, 5, 4, 5, 3, 6, 8, 2, 5, 3, 4, 6, 5, 5, 3, 4, 7, 4, 6, 6, 3, 3, 3, 8, 6, 7, 6, 6, 3, 6, 5, 2, 2, 2, 5, 4, 4, 1, 4, 3, 2, 7, 4, 2, 5, 4, 5, 6, 10, 2, 6, 5, 4, 8, 3, 2, 6, 3, 4, 5, 2, 3, 3, 8, 3, 2, 5, 3, 3, 6, 2, 4, 5, 8, 8, 2, 2, 6, 6, 4, 4, 5, 5, 6, 2, 3, 5, 4, 4, 2, 2, 3, 4, 2, 4, 3, 4, 7, 3, 3, 2, 4, 4, 6, 8, 4, 4, 5, 3, 7, 12, 4, 6, 6, 5, 4, 2, 7, 4, 2, 2, 5, 5, 5, 7, 8, 4, 4, 4, 6, 2, 5, 2, 5, 6, 2, 6, 5, 4, 4, 5, 2, 5, 5, 4, 8, 6, 6, 6, 4, 5, 6, 4, 2, 8, 3, 2, 3, 3, 7, 4, 12, 4, 3, 5, 5, 5, 4, 6, 3, 2, 6, 2, 3, 5, 5, 8, 5, 6, 3, 8, 2, 4, 4, 3, 4, 3, 2, 3, 4, 3, 3, 3, 5, 4, 3, 4, 4, 3, 5, 2, 4, 4, 4, 2, 5, 2, 7, 2, 2, 3, 4, 7, 7, 4, 3, 3, 5, 7, 2, 4, 5, 2, 7, 5, 5, 2, 4, 5, 2, 2, 2, 4, 5, 3, 6, 2, 7, 2, 2, 3, 3, 3, 2, 5, 4, 2, 2, 3, 3, 8, 6, 6, 5, 4, 2, 6, 2, 2, 3, 3, 6, 6, 4, 4, 5, 2, 2, 4, 2, 3, 4, 5, 2, 5, 9, 4, 6, 3, 4, 6, 5, 3, 7, 3, 4, 9, 5, 2, 3, 8, 8, 3, 10, 3, 5, 3, 5, 5, 5, 7, 2, 4, 5, 8, 4, 2, 4, 6, 5, 2, 2, 8, 4, 3, 3, 4, 4, 3, 5, 4, 4, 3, 5, 6, 7, 4, 4, 2, 2, 3, 3, 5, 2, 3, 2, 6, 2, 7, 3, 6, 3, 3, 5, 3, 2, 6, 5, 3, 2, 6, 6, 5, 4, 4, 2, 4, 4, 4, 2, 4, 6, 7, 6, 3, 5, 3, 4, 5, 3, 4, 6, 4, 2, 4, 5, 5, 4, 3, 2, 3, 4, 3, 5, 2, 3, 4, 2, 6, 6, 6, 6, 6, 7, 4, 6, 5, 5, 6, 4, 5, 4, 2, 4, 5, 4, 4, 6, 3, 3, 4, 3, 4, 7, 4, 2, 2, 3, 8, 8, 4, 8, 4, 3, 3, 3, 3, 10, 4, 2, 7, 5, 5, 4, 6, 6, 6, 4, 6, 2, 6, 2, 5, 6, 4, 2, 6, 6, 5, 3, 5, 5, 2, 9, 3, 2, 6, 3, 3, 5, 3, 3, 6, 5, 2, 6, 5, 3, 3, 2, 2, 3, 4, 7, 4, 3, 2, 4, 6, 2, 7, 5, 3, 2, 9, 2, 2, 4, 3, 9, 4, 5, 3, 7, 7, 2, 7, 3, 4, 2, 2, 5, 2, 3, 5, 4, 2, 7, 5, 3, 5, 4, 5, 3, 2, 3, 3, 6, 3, 5, 3, 6, 4, 3, 2, 3, 6, 7, 3, 4, 4, 3, 5, 5, 4, 3, 7, 3, 2, 5, 2, 3, 5, 4, 3, 5, 8, 5, 4, 5, 4, 6, 6, 3, 4, 4, 4, 2, 8, 3, 8, 3, 7, 6, 4, 4, 4, 10, 3, 6, 6, 4, 2, 7, 3, 7, 5, 3, 2, 3, 6, 5, 3, 4, 5, 5, 3, 2, 6, 5, 2, 3, 2, 8, 5, 4, 5, 5, 2, 9, 8, 2, 4, 3, 2, 2, 3, 4, 4, 4, 5, 3, 3, 3, 4, 7, 2, 7, 4, 4, 4, 4, 3, 6, 3, 4, 6, 5, 7, 2, 3, 2, 4, 7, 4, 2, 4, 3, 4, 3, 2, 3, 5, 3, 3, 6, 3, 8, 3, 2, 3, 3, 9, 7, 6, 2, 4, 2, 3, 3, 9, 2, 4, 2, 3, 5, 3, 5, 2, 5, 5, 2, 2, 3, 5, 4, 3, 6, 7, 4, 4, 3, 5, 3, 4, 2, 6, 4, 5, 4, 5, 2, 9, 7, 6, 3, 3, 4, 3, 7, 3, 8, 2, 4, 2, 3, 4, 4, 3, 3, 4, 6, 5, 2, 2, 2, 2, 7, 7, 7, 7, 4, 3, 4, 4, 9, 4, 8, 4, 6, 7, 2, 2, 6, 3, 4, 4, 3, 2, 7, 3, 5, 4, 4, 7, 6, 5, 5, 2, 5, 2, 8, 4, 7, 5, 2, 2, 2, 8, 2, 5, 5, 6, 3, 6, 2, 5, 6, 2, 2, 5, 2, 3, 5, 4, 3, 5, 3, 3, 3, 2, 6, 6, 3, 4, 5, 7, 5, 2, 3, 4, 6, 5, 2, 3, 6, 5, 2, 6, 2, 2, 7, 5, 3, 4, 3, 4, 2, 2, 2, 4, 4, 6, 4, 6, 5, 4, 3, 5, 6, 9, 3, 4, 2, 4, 6, 5, 5, 7, 8, 5, 2, 3, 3, 2, 3, 6, 4, 2, 5, 3, 6, 3, 4, 6, 4, 3, 5, 4, 4, 5, 4, 4, 4, 2, 4, 4, 3, 5, 8, 4, 3, 4, 4, 5, 5, 3, 4, 7, 5, 6, 5, 3, 6, 7, 7, 3, 2, 4, 6, 3, 3, 2, 3, 6, 2, 4, 4, 5, 3, 5, 7, 2, 7, 4, 2, 5, 3, 3, 2, 7, 4, 4, 4, 5, 4, 5, 6, 4, 4, 3, 5, 7, 2, 2, 5, 6, 6, 6, 7, 2, 3, 4, 2, 6, 4, 5, 4, 2, 3, 3, 3, 4, 4, 3, 5, 4, 6, 3, 9, 4, 5, 5, 8, 3, 6, 7, 6, 4, 5, 9, 3, 5, 2, 6, 7, 4, 5, 4, 4, 4, 8, 2, 3, 3, 6, 2, 8, 2, 8, 5, 6, 6, 5, 7, 3, 2, 6, 5, 6, 3, 5, 3, 6, 3, 4, 6, 4, 6, 3, 10, 6, 6, 4, 4, 5, 7, 3, 4, 3, 5, 2, 2, 4, 2, 7, 10, 5, 3, 5, 4, 7, 1, 4, 6, 4, 6, 8, 2, 3, 7, 7, 5, 8, 4, 4, 6, 7, 6, 5, 7, 5, 5, 9, 4, 5, 5, 6, 5, 7, 4, 6, 6, 3, 3, 3, 4, 2, 5, 3, 3, 3, 7, 5, 4, 4, 4, 3, 4, 7, 4, 3, 4, 3, 3, 6, 2, 6, 6, 3, 3, 8, 5, 5, 5, 4, 4, 4, 5, 3, 6, 3, 6, 7, 6, 3, 8, 2, 7, 5, 5, 5, 4, 3, 4, 5, 6, 4, 5, 2, 2, 5, 10, 2, 8, 3, 5, 6, 6, 6, 2, 7, 4, 6, 4, 4, 3, 6, 3, 4, 5, 5, 3, 5, 2, 2, 6, 8, 2, 2, 4, 3, 4, 3, 2, 7, 3, 6, 10, 6, 2, 3, 3, 5, 4, 5, 2, 7, 5, 8, 8, 3, 5, 3, 3, 5, 3, 4, 3, 3, 6, 5, 4, 3, 7, 4, 7, 3, 4, 3, 5, 4, 6, 6, 2, 4, 5, 5, 3, 2, 4, 4, 4, 6, 2, 3, 2, 6, 5, 4, 3, 5, 3, 3, 4, 4, 5, 4, 6, 7, 5, 2, 4, 3, 6, 2, 3, 8, 3, 3, 3, 4, 4, 7, 5, 5, 5, 3, 3, 2, 4, 9, 2, 7, 6, 8, 2, 9, 3, 3, 5, 3, 4, 6, 3, 2, 5, 5, 5, 4, 6, 3, 8, 4, 7, 7, 3, 4, 8, 4, 6, 5, 4, 3, 4, 4, 2, 8, 8, 3, 2, 3, 2, 2, 6, 4, 3, 9, 6, 5, 2, 7, 7, 4, 7, 3, 4, 4, 8, 6, 6, 3, 7, 7, 6, 6, 4, 4, 5, 6, 6, 4, 5, 5, 2, 9, 5, 2, 6, 3, 2, 4, 2, 7, 3, 5, 3, 4, 4, 2, 2, 4, 3, 4, 4, 3, 3, 2, 6, 2, 6, 3, 3, 4, 7, 4, 7, 2, 5, 3, 6, 5, 4, 5, 4, 7, 3, 4, 2, 4, 2, 3, 6, 6, 3, 3, 10, 3, 4, 3, 3, 3, 4, 5, 4, 4, 4, 6, 6, 4, 6, 7, 4, 10, 4, 8, 2, 4, 2, 4, 7, 2, 4, 5, 2, 2, 5, 4, 2, 2, 2, 4, 7, 5, 8, 5, 4, 8, 5, 6, 5, 2, 6, 3, 3, 2, 3, 3, 6, 3, 4, 3, 3, 2, 6, 8, 7, 5, 5, 4, 3, 4, 5, 8, 2, 5, 6, 4, 6, 2, 3, 3, 3, 5, 4, 2, 2, 10, 5, 6, 7, 4, 5, 3, 4, 7, 4, 7, 2, 6, 6, 6, 2, 2, 5, 7, 4, 5, 5, 9, 5, 2, 6, 3, 4, 2, 4, 3, 2, 2, 3, 2, 2, 2, 3, 3, 4, 6, 5, 3, 2, 2, 7, 2, 5, 3, 4, 4, 3, 2, 6, 6, 2, 2, 4, 4, 7, 4, 2, 5, 3, 8, 3, 3, 4, 4, 2, 3, 3, 3, 2, 5, 4, 2, 3, 7, 2, 2, 3, 2, 5, 3, 6, 4, 6, 3, 7, 3, 8, 2, 7, 3, 5, 2, 2, 5, 6, 6, 2, 7, 6, 3, 2, 2, 5, 3, 4, 3, 4, 2, 5, 4, 3, 4, 4, 7, 3, 9, 2, 3, 4, 3, 5, 7, 2, 4, 8, 7, 3, 2, 2, 2, 2, 2, 4, 3, 9, 2, 2, 3, 2, 7, 4, 3, 5, 3, 2, 5, 4, 2, 5, 4, 2, 7, 4, 3, 6, 3, 4, 4, 9, 6, 3, 6, 7, 3, 4, 5, 4, 4, 5, 3, 3, 3, 5, 6, 2, 2, 5, 4, 3, 4, 6, 2, 8, 4, 6, 4, 2, 3, 3, 2, 4, 5, 2, 3, 3, 6, 5, 2, 8, 4, 5, 3, 3, 5, 2, 3, 2, 5, 1, 2, 8, 4, 4, 3, 4, 8, 3, 2, 6, 4, 5, 2, 4, 3, 3, 3, 3, 8, 3, 4, 3, 4, 6, 6, 6, 7, 6, 5, 4, 3, 5, 2, 4, 3, 3, 4, 3, 4, 5, 2, 3, 2, 3, 3, 4, 4, 2, 4, 3, 4, 5, 5, 9, 3, 3, 2, 6, 6, 4, 2, 7, 4, 4, 7, 8, 7, 2, 5, 2, 3, 2, 4, 5, 3, 5, 5, 4, 6, 5, 3, 2, 2, 5, 4, 7, 4, 6, 4, 5, 4, 3, 6, 4, 5, 2, 9, 7, 3, 8, 5, 4, 4, 3, 5, 5, 3, 2, 5, 7, 5, 8, 7, 5, 5, 5, 5, 3, 5, 7, 2, 3, 3, 3, 5, 2, 3, 6, 4, 3, 5, 5, 5, 4, 2, 6, 3, 2, 3, 7, 4, 3, 2, 2, 2, 3, 3, 5, 3, 3, 7, 3, 6, 3, 2, 2, 7, 3, 2, 6, 4, 4, 6, 2, 4, 3, 8, 6, 5, 3, 4, 8, 6, 2, 3, 4, 5, 4, 2, 4, 7, 5, 4, 3, 4, 4, 2, 2, 3, 4, 3, 2, 3, 5, 2, 3, 4, 3, 2, 5, 3, 7, 5, 9, 9, 2, 3, 5, 3, 7, 2, 7, 6, 6, 9, 3, 4, 4, 4, 7, 5, 3, 6, 5, 6, 4, 3, 7, 5, 4, 6, 2, 3, 5, 3, 5, 3, 3, 2, 3, 2, 3, 6, 4, 6, 2, 3, 4, 4, 4, 9, 8, 7, 6, 1, 4, 3, 4, 7, 4, 4, 5, 3, 4, 6, 3, 7, 3, 4, 3, 5, 3, 2, 6, 3, 4, 6, 5, 3, 4, 3, 4, 2, 6, 2, 6, 3, 6, 4, 2, 5, 2, 6, 3, 8, 6, 2, 4, 6, 5, 8, 4, 4, 10, 3, 2, 5, 5, 3, 3, 2, 3, 7, 3, 4, 4, 5, 2, 6, 4, 3, 6, 3, 4, 4, 3, 7, 3, 6, 3, 3, 4, 3, 5, 2, 4, 4, 4, 3, 4, 8, 5, 4, 5, 3, 9, 4, 5, 2, 4, 4, 4, 4, 3, 4, 3, 5, 4, 6, 4, 4, 2, 3, 4, 2, 2, 3, 2, 3, 4, 4, 4, 3, 4, 6, 3, 2, 3, 3, 2, 3, 3, 3, 5, 4, 4, 4, 2, 2, 3, 4, 6, 3, 6, 3, 6, 5, 4, 4, 5, 3, 3, 4, 4, 2, 5, 5, 2, 3, 8, 4, 5, 5, 3, 7, 2, 3, 5, 4, 3, 2, 4, 4, 2, 3, 2, 4, 6, 6, 4, 3, 4, 5, 3, 5, 3, 4, 3, 4, 9, 4, 9, 6, 5, 5, 4, 4, 3, 4, 8, 3, 4, 4, 8, 2, 6, 4, 3, 4, 7, 4, 2, 4, 3, 4, 4, 6, 6, 3, 5, 2, 3, 9, 2, 5, 5, 7, 4, 2, 3, 7, 4, 3, 6, 2, 3, 5, 3, 3, 4, 3, 2, 3, 2, 2, 4, 2, 4, 7, 3, 3, 3, 6, 5, 2, 4, 6, 2, 4, 3, 4, 5, 2, 2, 3, 4, 7, 5, 4, 4, 2, 2, 2, 5, 3, 5, 2, 2, 5, 2, 4, 5, 5, 3, 2, 8, 10, 9, 3, 4, 3, 2, 4, 2, 5, 4, 6, 6, 3, 3, 3, 7, 9, 5, 4, 5, 6, 4, 3, 4, 7, 2, 4, 8, 7, 3, 3, 6, 3, 2, 7, 2, 2, 3, 4, 3, 3, 3, 2, 5, 6, 5, 4, 6, 4, 3, 5, 5, 8, 10, 3, 5, 4, 4, 2, 5, 3, 5, 5, 6, 4, 6, 7, 4, 4, 3, 3, 4, 4, 2, 7, 5, 5, 5, 4, 6, 9, 3, 4, 5, 6, 4, 4, 4, 4, 3, 3, 6, 5, 2, 3, 2, 5, 3, 3, 2, 4, 2, 8, 4, 3, 4, 7, 3, 6, 3, 3, 7, 10, 4, 4, 7, 2, 5, 5, 3, 3, 3, 8, 2, 4, 2, 5, 3, 3, 5, 4, 5, 8, 3, 2, 4, 6, 6, 3, 8, 2, 2, 4, 7, 7, 4, 2, 4, 3, 2, 7, 4, 6, 3, 6, 6, 5, 6, 7, 5, 4, 5, 2, 2, 2, 5, 3, 6, 4, 4, 3, 4, 3, 4, 10, 4, 5, 4, 4, 2, 4, 4, 5, 7, 6, 6, 4, 5, 6, 5, 3, 3, 5, 5, 7, 3, 6, 7, 5, 3, 3, 8, 4, 3, 6, 5, 5, 3, 2, 6, 4, 4, 7, 3, 6, 7, 3, 6, 2, 5, 5, 3, 4, 4, 7, 4, 2, 6, 3, 3, 3, 8, 5, 3, 2, 6, 5, 5, 7, 4, 2, 2, 3, 2, 4, 5, 2, 5, 7, 2, 6, 4, 4, 5, 6, 7, 2, 4, 8, 3, 6, 4, 2, 2, 5, 3, 2, 5, 2, 2, 2, 2, 4, 4, 9, 2, 5, 5, 4, 3, 2, 4, 4, 5, 6, 4, 8, 7, 2, 8, 3, 2, 6, 4, 8, 6, 8, 3, 2, 7, 4, 3, 2, 3, 7, 4, 2, 2, 4, 3, 10, 3, 7, 5, 3, 3, 3, 7, 4, 5, 2, 3, 4, 5, 9, 5, 3, 8, 2, 5, 2, 2, 4, 5, 5, 7, 6, 4, 8, 9, 2, 3, 3, 4, 4, 6, 7, 2, 3, 5, 7, 4, 4, 4, 7, 6, 4, 2, 3, 7, 3, 2, 3, 5, 5, 5, 3, 5, 6, 4, 3, 4, 3, 2, 5, 5, 4, 3, 6, 3, 5, 3, 8, 3, 5, 4, 4, 6, 8, 4, 6, 3, 4, 10, 3, 6, 5, 6, 4, 5, 7, 3, 5, 4, 4, 4, 8, 4, 2, 7, 3, 5, 6, 4, 2, 4, 4, 2, 6, 6, 4, 5, 5, 4, 4, 5, 5, 3, 4, 4, 5, 1, 5, 2, 3, 4, 2, 3, 6, 3, 2, 6, 4, 2, 3, 2, 6, 3, 2, 2, 4, 6, 3, 2, 4, 6, 3, 8, 6, 2, 5, 4, 6, 6, 3, 2, 9, 7, 4, 3, 4, 7, 2, 4, 5, 6, 3, 3, 3, 4, 8, 5, 6, 6, 3, 3, 2, 2, 2, 5, 2, 2, 7, 5, 4, 5, 7, 4, 6, 2, 5, 4, 3, 3, 4, 2, 3, 2, 6, 2, 5, 7, 2, 3, 3, 6, 5, 3, 7, 4, 3, 6, 6, 5, 3, 3, 7, 3, 6, 4, 2, 4, 2, 5, 9, 3, 3, 5, 3, 5, 7, 3, 5, 4, 4, 5, 2, 5, 10, 4, 2, 7, 2, 2, 4, 4, 5, 6, 3, 3, 5, 3, 6, 5, 6, 3, 2, 2, 4, 2, 5, 7, 4, 2, 4, 2, 4, 5, 5, 4, 4, 6, 6, 6, 5, 2, 2, 6, 4, 3, 3, 3, 5, 2, 6, 9, 3, 4, 2, 4, 6, 6, 3, 7, 8, 2, 4, 6, 5, 3, 3, 3, 6, 5, 3, 4, 9, 4, 2, 7, 3, 4, 2, 8, 3, 5, 4, 5, 6, 6, 4, 7, 4, 3, 5, 7, 8, 6, 4, 9, 2, 2, 2, 4, 3, 4, 5, 3, 2, 5, 3, 3, 3, 4, 8, 9, 2, 4, 4, 3, 4, 3, 8, 5, 6, 8, 3, 4, 3, 5, 2, 2, 7, 4, 5, 6, 4, 3, 5, 2, 7, 6, 5, 3, 2, 6, 3, 4, 4, 5, 5, 4, 4, 6, 4, 4, 2, 6, 3, 3, 5, 3, 4, 4, 3, 3, 5, 7, 4, 5, 2, 6, 7, 3, 2, 5, 2, 5, 2, 4, 8, 5, 4, 8, 5, 3, 4, 4, 7, 2, 4, 4, 3, 4, 3, 5, 6, 4, 5, 4, 5, 2, 3, 7, 7, 2, 3, 5, 5, 4, 7, 4, 5, 6, 5, 4, 5, 3, 2, 3, 5, 4, 3, 5, 3, 3, 4, 5, 6, 6, 3, 4, 5, 5, 4, 6, 6, 5, 4, 4, 8, 4, 3, 5, 4, 6, 7, 7, 10, 2, 4, 4, 2, 2, 10, 3, 2, 3, 2, 7, 6, 3, 7, 2, 2, 2, 4, 5, 5, 2, 3, 2, 5, 7, 5, 7, 7, 4, 2, 6, 9, 6, 6, 4, 5, 6, 2, 3, 5, 6, 6, 6, 5, 2, 8, 3, 3, 7, 5, 2, 7, 5, 4, 7, 3, 6, 4, 4, 4, 4, 4, 4, 3, 3, 5, 7, 9, 7, 6, 4, 4, 4, 3, 4, 8, 4, 4, 4, 2, 2, 2, 4, 2, 3, 3, 4, 5, 3, 5, 3, 4, 7, 4, 5, 3, 4, 3, 5, 3, 4, 3, 2, 4, 2, 5, 2, 8, 3, 3, 4, 3, 8, 6, 6, 5, 4, 7, 4, 5, 2, 3, 5, 4, 5, 7, 3, 2, 6, 6, 4, 6, 5, 9, 5, 2, 3, 4, 6, 4, 2, 4, 3, 3, 3, 3, 5, 5, 3, 6, 3, 4, 5, 4, 5, 3, 3, 4, 7, 3, 4, 2, 4, 8, 4, 3, 2, 6, 2, 3, 2, 4, 3, 7, 7, 6, 3, 8, 4, 3, 5, 2, 5, 3, 5, 2, 7, 4, 4, 3, 6, 5, 9, 7, 6, 3, 3, 4, 4, 3, 4, 5, 3, 8, 8, 2, 4, 4, 6, 8, 3, 3, 4, 5, 2, 5, 6, 3, 2, 5, 9, 5, 4, 6, 3, 3, 5, 9, 2, 6, 7, 4, 6, 3, 3, 5, 7, 2, 2, 7, 3, 2, 7, 5, 8, 3, 5, 3, 2, 4, 4, 7, 4, 3, 3, 2, 5, 4, 2, 4, 5, 3, 2, 2, 4, 6, 5, 5, 3, 3, 5, 4, 3, 6, 8, 3, 2, 3, 5, 3, 4, 2, 2, 3, 3, 3, 2, 2, 6, 6, 5, 8, 4, 3, 6, 3, 7, 3, 3, 3, 3, 5, 2, 4, 2, 4, 4, 4, 3, 6, 4, 4, 5, 3, 4, 2, 4, 6, 4, 5, 3, 5, 4, 6, 4, 4, 3, 4, 6, 9, 2, 7, 9, 7, 5, 5, 2, 4, 4, 3, 3, 6, 4, 8, 7, 3, 2, 4, 6, 4, 5, 4, 6, 5, 3, 4, 3, 6, 2, 4, 5, 2, 5, 2, 2, 5, 3, 8, 5, 6, 7, 10, 4, 7, 5, 2, 4, 5, 5, 2, 5, 5, 7, 5, 4, 7, 8, 6, 5, 7, 6, 7, 4, 4, 4, 2, 3, 5, 3, 7, 9, 4, 4, 2, 7, 6, 2, 5, 6, 4, 2, 4, 2, 4, 4, 4, 3, 3, 4, 3, 5, 6, 3, 2, 8, 2, 5, 2, 6, 6, 6, 5, 6, 5, 4, 2, 6, 4, 2, 2, 4, 7, 4, 4, 3, 7, 5, 3, 4, 2, 3, 4, 4, 4, 3, 3, 5, 8, 3, 4, 9, 3, 3, 3, 6, 3, 4, 6, 9, 4, 3, 7, 4, 3, 3, 4, 5, 3, 3, 2, 3, 5, 5, 3, 8, 3, 6, 4, 5, 2, 4, 4, 6, 3, 2, 4, 5, 3, 6, 7, 6, 7, 3, 6, 4, 6, 8, 3, 2, 4, 4, 4, 6, 4, 6, 4, 2, 6, 4, 5, 3, 7, 7, 4, 3, 7, 5, 2, 9, 5, 3, 6, 6, 2, 3, 3, 5, 9, 3, 2, 5, 3, 2, 6, 5, 4, 2, 5, 9, 3, 4, 6, 8, 2, 4, 6, 5, 5, 3, 2, 6, 2, 3, 3, 5, 4, 5, 5, 3, 2, 4, 2, 2, 4, 3, 6, 6, 3, 3, 3, 2, 5, 2, 5, 8, 6, 3, 3, 5, 6, 3, 3, 3, 2, 3, 7, 3, 4, 2, 7, 3, 2, 5, 5, 5, 8, 2, 6, 3, 5, 7, 5, 3, 10, 4, 7, 4, 3, 3, 3, 4, 3, 5, 4, 5, 3, 7, 5, 6, 5, 5, 8, 2, 4, 2, 8, 4, 6, 6, 7, 5, 3, 4, 6, 4, 2, 5, 3, 3, 3, 4, 4, 4, 2, 5, 7, 3, 4, 6, 4, 3, 6, 5, 2, 3, 5, 6, 3, 4, 3, 7, 3, 3, 4, 3, 4, 4, 6, 7, 5, 3, 6, 6, 2, 9, 5, 3, 4, 4, 4, 2, 5, 5, 3, 4, 10, 6, 2, 5, 4, 3, 4, 4, 3, 3, 3, 4, 4, 5, 5, 3, 3, 6, 3, 3, 4, 4, 2, 7, 4, 3, 7, 5, 4, 6, 4, 9, 8, 5, 2, 9, 8, 8, 4, 7, 5, 4, 6, 4, 4, 7, 2, 4, 7, 8, 4, 7, 6, 2, 4, 8, 2, 7, 7, 6, 5, 2, 2, 5, 8, 4, 2, 6, 7, 3, 8, 6, 6, 5, 4, 10, 3, 3, 5, 7, 5, 2, 3, 3, 4, 6, 6, 6, 10, 4, 4, 2, 5, 5, 5, 4, 3, 3, 6, 5, 8, 3, 3, 6, 3, 7, 7, 3, 3, 3, 3, 5, 4, 4, 9, 4, 4, 5, 4, 9, 8, 2, 4, 4, 3, 3, 3, 4, 5, 9, 4, 6, 2, 5, 8, 3, 6, 4, 7, 4, 2, 4, 3, 6, 5, 5, 4, 2, 4, 3, 4, 2, 5, 4, 3, 5, 5, 3, 7, 3, 6, 7, 5, 2, 5, 4, 6, 7, 3, 5, 7, 5, 2, 6, 2, 9, 7, 5, 4, 2, 4, 4, 5, 7, 3, 5, 7, 6, 3, 6, 4, 5, 2, 5, 7, 4, 2, 7, 8, 5, 4, 5, 2, 5, 5, 3, 2, 2, 5, 4, 3, 4, 4, 5, 7, 6, 3, 4, 3, 4, 5, 7, 3, 2, 2, 3, 2, 3, 6, 2, 9, 5, 4, 5, 4, 2, 5, 6, 3, 6, 4, 3, 9, 7, 3, 6, 4, 7, 8, 4, 3, 4, 5, 7, 3, 5, 4, 2, 3, 5, 2, 6, 3, 3, 15, 5, 4, 3, 6, 6, 5, 5, 3, 2, 4, 5, 8, 5, 6, 2, 3, 5, 3, 4, 2, 6, 2, 6, 2, 5, 9, 3, 3, 3, 2, 3, 5, 2, 8, 4, 2, 2, 3, 4, 4, 3, 3, 3, 4, 3, 5, 6, 4, 3, 3, 5, 3, 3, 3, 2, 2, 2, 2, 9, 7, 5, 3, 4, 9, 6, 3, 9, 4, 4, 5, 5, 4, 6, 5, 6, 6, 5, 8, 7, 9, 3, 6, 3, 7, 2, 2, 3, 8, 6, 3, 6, 7, 3, 3, 8, 4, 3, 4, 6, 4, 2, 6, 3, 4, 4, 4, 3, 6, 6, 4, 7, 3, 6, 5, 4, 3, 5, 3, 4, 5, 4, 3, 5, 3, 5, 6, 4, 7, 2, 3, 2, 3, 3, 5, 4, 6, 5, 5, 3, 4, 6, 5, 4, 7, 8, 6, 3, 3, 2, 7, 3, 4, 7, 3, 4, 4, 2, 2, 8, 6, 4, 6, 3, 3, 9, 4, 3, 3, 6, 8, 7, 6, 5, 3, 3, 3, 6, 6, 4, 4, 3, 3, 3, 5, 7, 4, 6, 5, 8, 5, 4, 3, 4, 3, 8, 4, 3, 3, 2, 9, 3, 6, 3, 3, 2, 7, 8, 5, 4, 4, 6, 3, 3, 4, 3, 4, 5, 2, 2, 4, 6, 5, 5, 6, 6, 5, 2, 3, 4, 4, 5, 3, 4, 7, 2, 4, 5, 5, 10, 4, 5, 4, 2, 2, 5, 3, 3, 4, 5, 2, 3, 3, 6, 3, 3, 5, 3, 4, 2, 3, 2, 4, 6, 4, 5, 5, 4, 5, 4, 3, 4, 2, 3, 8, 5, 7, 3, 5, 3, 4, 2, 7, 2, 5, 3, 3, 4, 5, 3, 3, 3, 3, 3, 9, 4, 1, 2, 5, 5, 3, 2, 6, 2, 3, 5, 4, 4, 3, 3, 6, 4, 3, 4, 5, 5, 4, 5, 3, 7, 7, 3, 3, 5, 8, 5, 3, 3, 4, 3, 3, 6, 4, 5, 4, 3, 4, 6, 8, 2, 4, 3, 3, 2, 3, 5, 6, 5, 2, 5, 6, 4, 3, 4, 3, 4, 4, 4, 8, 5, 2, 3, 5, 4, 5, 4, 3, 5, 4, 4, 4, 8, 4, 5, 2, 5, 4, 2, 6, 5, 4, 4, 6, 6, 4, 5, 5, 2, 4, 4, 2, 2, 5, 3, 5, 4, 3, 4, 8, 2, 5, 5, 5, 3, 4, 10, 5, 4, 3, 4, 2, 4, 4, 2, 3, 5, 2, 2, 3, 2, 6, 8, 4, 2, 4, 3, 9, 7, 9, 8, 5, 8, 9, 3, 6, 4, 7, 4, 6, 4, 6, 3, 10, 4, 2, 7, 8, 4, 3, 2, 3, 6, 4, 3, 3, 7, 3, 4, 4, 4, 4, 2, 5, 6, 3, 2, 5, 7, 7, 3, 4, 4, 3, 4, 3, 9, 5, 3, 5, 6, 3, 3, 7, 4, 2, 5, 2, 3, 6, 5, 3, 6, 3, 4, 7, 8, 2, 3, 4, 7, 8, 3, 7, 3, 4, 3, 2, 4, 5, 4, 3, 5, 2, 3, 3, 3, 3, 9, 4, 4, 7, 3, 5, 4, 6, 5, 2, 4, 3, 2, 6, 4, 3, 3, 3, 6, 3, 4, 4, 3, 4, 3, 4, 2, 3, 4, 8, 7, 3, 5, 6, 5, 2, 2, 5, 3, 3, 2, 7, 8, 5, 3, 6, 3, 4, 5, 5, 4, 5, 3, 2, 4, 7, 3, 2, 5, 2, 5, 3, 8, 4, 4, 5, 4, 6, 2, 3, 3, 3, 3, 4, 2, 4, 7, 8, 3, 2, 5, 4, 6, 2, 2, 2, 8, 9, 5, 9, 2, 6, 3, 2, 2, 3, 3, 3, 4, 2, 2, 5, 7, 2, 5, 4, 1, 4, 2, 5, 6, 4, 4, 5, 3, 3, 3, 4, 5, 5, 5, 3, 5, 2, 9, 3, 5, 2, 4, 3, 6, 7, 3, 5, 3, 7, 4, 3, 4, 5, 2, 3, 7, 6, 3, 2, 4, 6, 3, 3, 4, 5, 5, 5, 3, 7, 3, 4, 3, 3, 3, 2, 5, 5, 2, 2, 9, 6, 4, 4, 3, 5, 2, 3, 4, 6, 3, 2, 5, 3, 3, 5, 4, 5, 4, 4, 4, 4, 5, 3, 4, 4, 4, 3, 4, 6, 2, 6, 9, 4, 5, 4, 4, 4, 4, 4, 2, 4, 10, 5, 6, 4, 8, 7, 9, 4, 4, 7, 4, 2, 5, 5, 3, 8, 4, 6, 3, 7, 3, 3, 4, 2, 3, 5, 5, 4, 2, 3, 4, 6, 8, 4, 4, 3, 4, 2, 2, 4, 6, 4, 5, 6, 4, 2, 5, 6, 2, 4, 2, 5, 6, 2, 3, 3, 7, 4, 4, 4, 5, 5, 4, 3, 7, 4, 8, 7, 2, 3, 3, 3, 4, 4, 9, 2, 2, 7, 3, 3, 2, 2, 2, 3, 2, 3, 3, 7, 5, 3, 8, 7, 7, 2, 5, 7, 4, 5, 5, 6, 3, 5, 3, 3, 4, 5, 2, 4, 3, 6, 6, 5, 3, 5, 4, 4, 6, 2, 5, 4, 4, 4, 8, 7, 6, 8, 4, 6, 3, 2, 3, 2, 4, 2, 3, 4, 5, 2, 3, 6, 8, 3, 2, 5, 3, 2, 2, 5, 7, 3, 5, 6, 6, 4, 9, 4, 2, 6, 4, 3, 5, 3, 6, 6, 4, 3, 2, 4, 3, 5, 5, 4, 4, 2, 5, 8, 4, 3, 2, 6, 5, 6, 6, 4, 2, 3, 4, 2, 4, 2, 6, 6, 6, 5, 2, 4, 8, 5, 4, 5, 9, 4, 2, 3, 5, 4, 5, 6, 5, 6, 5, 4, 4, 5, 9, 4, 6, 3, 5, 6, 5, 4, 6, 6, 5, 3, 4, 4, 4, 5, 4, 4, 2, 3, 9, 6, 3, 3, 9, 7, 2, 4, 4, 4, 2, 3, 3, 5, 9, 4, 5, 6, 4, 2, 7, 2, 2, 2, 5, 3, 5, 2, 9, 3, 7, 6, 4, 2, 3, 3, 4, 9, 2, 4, 4, 9, 4, 5, 9, 7, 4, 2, 3, 3, 3, 4, 5, 5, 2, 9, 2, 4, 6, 6, 9, 3, 2, 3, 2, 2, 6, 2, 4, 5, 3, 10, 3, 4, 9, 8, 7, 6, 5, 6, 8, 4, 8, 5, 7, 8, 7, 2, 2, 4, 5, 4, 7, 5, 3, 4, 5, 4, 4, 7, 3, 3, 4, 3, 5, 2, 5, 2, 4, 3, 5, 2, 4, 3, 5, 7, 2, 2, 2, 9, 5, 4, 2, 2, 5, 4, 3, 6, 4, 3, 4, 3, 3, 2, 8, 8, 5, 3, 3, 5, 8, 4, 4, 3, 4, 6, 5, 5, 4, 5, 4, 2, 4, 8, 7, 5, 8, 6, 4, 5, 5, 2, 2, 3, 3, 4, 4, 3, 4, 3, 3, 7, 2, 3, 3, 2, 3, 5, 3, 6, 5, 4, 5, 4, 4, 3, 4, 7, 4, 2, 8, 5, 4, 9, 2, 7, 3, 6, 4, 5, 4, 3, 4, 2, 3, 7, 6, 3, 2, 3, 5, 2, 4, 2, 2, 2, 2, 3, 4, 4, 3, 6, 4, 3, 2, 4, 9, 5, 3, 4, 4, 3, 7, 2, 2, 4, 5, 2, 6, 2, 4, 5, 3, 3, 5, 4, 2, 3, 5, 4, 3, 5, 5, 2, 5, 5, 3, 3, 2, 3, 6, 8, 9, 4, 5, 6, 8, 5, 4, 4, 2, 5, 3, 4, 2, 2, 3, 3, 3, 5, 3, 4, 4, 4, 5, 2, 2, 5, 3, 4, 9, 2, 3, 3, 7, 3, 2, 5, 4, 6, 3, 5, 7, 5, 5, 10, 4, 5, 3, 3, 2, 3, 3, 4, 3, 8, 2, 5, 4, 5, 4, 2, 3, 7, 3, 5, 7, 4, 6, 6, 3, 5, 3, 3, 2, 6, 2, 5, 3, 4, 6, 5, 7, 5, 5, 3, 6, 5, 2, 6, 6, 2, 2, 9, 4, 2, 6, 8, 4, 5, 4, 3, 4, 4, 5, 2, 4, 8, 5, 4, 7, 9, 3, 3, 4, 3, 4, 5, 3, 4, 2, 4, 3, 3, 3, 7, 5, 5, 4, 3, 7, 7, 2, 7, 5, 7, 7, 3, 6, 3, 8, 5, 4, 5, 3, 9, 5, 7, 7, 9, 5, 6, 6, 5, 3, 3, 3, 3, 5, 3, 2, 6, 5, 3, 4, 7, 2, 3, 4, 7, 5, 2, 3, 6, 5, 2, 5, 5, 3, 5, 6, 4, 4, 7, 6, 3, 3, 3, 3, 6, 5, 4, 7, 5, 3, 7, 3, 4, 4, 3, 2, 2, 6, 4, 2, 6, 3, 5, 3, 4, 4, 3, 6, 5, 2, 8, 4, 5, 2, 2, 3, 9, 2, 9, 3, 3, 6, 4, 3, 3, 3, 4, 2, 4, 4, 8, 2, 6, 4, 2, 6, 4, 6, 3, 3, 3, 10, 3, 4, 5, 5, 4, 6, 5, 5, 5, 3, 3, 3, 6, 5, 3, 4, 5, 4, 2, 5, 3, 7, 5, 6, 2, 4, 6, 6, 5, 6, 4, 5, 3, 3, 6, 4, 2, 3, 2, 4, 3, 3, 5, 8, 5, 7, 6, 2, 5, 5, 4, 5, 3, 4, 4, 7, 3, 2, 7, 2, 7, 3, 5, 6, 4, 4, 2, 5, 4, 5, 4, 2, 4, 2, 5, 5, 4, 4, 2, 2, 4, 2, 8, 5, 5, 7, 5, 6, 3, 3, 2, 5, 5, 5, 3, 8, 3, 7, 6, 2, 4, 3, 2, 4, 2, 6, 5, 5, 7, 3, 2, 2, 6, 6, 2, 4, 3, 3, 3, 6, 6, 8, 2, 6, 3, 3, 5, 10, 4, 2, 3, 5, 3, 2, 5, 4, 4, 3, 3, 5, 2, 5, 3, 6, 6, 4, 5, 5, 4, 6, 3, 6, 3, 4, 7, 5, 2, 6, 8, 3, 3, 5, 4, 5, 4, 4, 6, 6, 4, 8, 3, 3, 8, 5, 3, 3, 3, 4, 6, 6, 8, 2, 6, 2, 3, 3, 8, 2, 5, 7, 5, 7, 6, 4, 4, 4, 11, 4, 3, 5, 4, 3, 5, 4, 3, 2, 3, 3, 9, 6, 5, 6, 8, 7, 5, 4, 4, 5, 4, 4, 3, 3, 3, 3, 4, 2, 5, 2, 6, 3, 2, 4, 3, 3, 2, 3, 2, 2, 7, 8, 3, 3, 4, 3, 2, 5, 2, 4, 3, 5, 5, 3, 4, 3, 5, 5, 2, 3, 3, 5, 5, 5, 3, 7, 8, 3, 2, 4, 4, 6, 4, 5, 9, 3, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 4, 2, 5, 5, 4, 7, 3, 3, 3, 2, 7, 6, 5, 6, 3, 5, 8, 2, 3, 7, 5, 3, 3, 4, 3, 3, 7, 3, 3, 3, 6, 9, 3, 3, 4, 2, 2, 4, 7, 6, 2, 7, 7, 4, 5, 5, 4, 5, 4, 3, 5, 5, 10, 4, 2, 4, 4, 7, 3, 3, 5, 5, 4, 4, 10, 2, 5, 3, 4, 3, 7, 3, 5, 2, 4, 2, 5, 8, 7, 3, 5, 3, 3, 8, 7, 4, 2, 3, 4, 3, 4, 3, 4, 7, 4, 6, 5, 2, 6, 2, 6, 3, 4, 3, 9, 2, 8, 2, 6, 4, 7, 7, 3, 4, 5, 4, 5, 2, 3, 4, 2, 5, 2, 6, 5, 3, 6, 5, 4, 4, 3, 6, 2, 8, 2, 7, 6, 2, 3, 3, 3, 2, 6, 4, 3, 2, 5, 4, 7, 3, 5, 4, 6, 4, 3, 6, 8, 2, 3, 5, 7, 6, 4, 4, 2, 3, 7, 6, 6, 5, 6, 5, 5, 5, 7, 3, 8, 6, 3, 2, 6, 2, 4, 5, 4, 3, 4, 2, 6, 2, 4, 3, 3, 4, 4, 5, 5, 3, 6, 6, 5, 6, 4, 4, 2, 6, 3, 3, 3, 3, 5, 5, 2, 4, 4, 2, 9, 2, 5, 5, 2, 2, 4, 6, 4, 4, 3, 2, 5, 3, 5, 3, 4, 3, 2, 4, 3, 4, 5, 9, 5, 3, 3, 4, 9, 8, 7, 10, 5, 4, 3, 5, 3, 3, 4, 4, 4, 3, 3, 5, 6, 2, 3, 3, 5, 3, 3, 4, 4, 4, 9, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 5, 3, 4, 2, 7, 4, 4, 5, 7, 5, 4, 5, 7, 11, 6, 5, 5, 4, 2, 3, 4, 4, 7, 5, 3, 3, 3, 2, 5, 4, 5, 7, 2, 5, 7, 3, 4, 4, 3, 4, 4, 3, 3, 5, 6, 4, 6, 6, 4, 4, 3, 7, 5, 4, 5, 6, 7, 4, 4, 10, 6, 4, 5, 5, 8, 3, 7, 2, 2, 10, 4, 3, 2, 6, 2, 4, 4, 4, 2, 4, 3, 2, 3, 6, 5, 7, 4, 7, 3, 6, 6, 7, 3, 4, 4, 6, 2, 4, 4, 3, 2, 6, 5, 2, 2, 2, 5, 3, 3, 7, 3, 5, 3, 6, 9, 8, 7, 6, 4, 2, 5, 6, 9, 3, 2, 4, 7, 3, 4, 9, 2, 2, 5, 6, 4, 3, 3, 3, 2, 9, 3, 4, 9, 3, 6, 6, 4, 6, 4, 2, 4, 5, 3, 6, 6, 3, 2, 4, 4, 5, 6, 5, 5, 4, 7, 4, 3, 3, 6, 5, 8, 3, 6, 3, 4, 3, 2, 3, 6, 2, 5, 2, 3, 4, 3, 9, 6, 3, 6, 5, 5, 8, 3, 3, 6, 6, 2, 5, 6, 4, 3, 4, 6, 3, 4, 8, 4, 4, 3, 6, 6, 3, 2, 4, 8, 6, 3, 6, 7, 3, 7, 3, 7, 5, 5, 2, 5, 3, 4, 2, 7, 3, 6, 2, 4, 5, 3, 8, 2, 3, 3, 3, 2, 3, 2, 3, 3, 4, 3, 3, 3, 5, 6, 4, 9, 3, 8, 5, 4, 3, 6, 5, 4, 2, 7, 4, 7, 2, 5, 4, 7, 3, 6, 4, 3, 5, 3, 2, 4, 6, 4, 5, 5, 5, 5, 6, 4, 3, 4, 4, 7, 4, 3, 3, 7, 5, 2, 3, 2, 4, 3, 3, 2, 5, 5, 4, 2, 2, 6, 5, 3, 2, 5, 4, 5, 3, 2, 4, 7, 9, 2, 2, 2, 6, 4, 2, 5, 3, 5, 10, 5, 3, 7, 5, 7, 3, 7, 3, 5, 4, 5, 4, 8, 3, 3, 4, 4, 2, 9, 3, 3, 2, 4, 5, 4, 3, 4, 4, 4, 4, 9, 7, 5, 5, 6, 2, 8, 4, 3, 4, 7, 5, 5, 3, 7, 2, 7, 5, 3, 3, 3, 2, 4, 3, 4, 5, 6, 2, 2, 2, 3, 5, 3, 4, 3, 2, 5, 5, 8, 3, 4, 3, 6, 6, 5, 3, 7, 9, 4, 5, 6, 5, 4, 3, 4, 4, 3, 4, 2, 3, 4, 4, 4, 4, 4, 6, 2, 3, 5, 5, 2, 5, 5, 6, 3, 3, 2, 4, 5, 3, 4, 5, 4, 3, 5, 2, 2, 4, 3, 3, 3, 5, 2, 4, 3, 3, 6, 4, 4, 3, 3, 2, 3, 4, 5, 5, 4, 2, 3, 3, 5, 3, 3, 5, 3, 8, 5, 5, 3, 6, 9, 4, 6, 8, 2, 2, 2, 3, 4, 11, 5, 6, 6, 2, 2, 7, 4, 9, 2, 4, 6, 3, 5, 3, 4, 4, 3, 3, 2, 3, 4, 4, 3, 2, 3, 6, 2, 6, 2, 4, 9, 5, 4, 2, 2, 5, 5, 7, 6, 3, 2, 3, 2, 6, 5, 3, 6, 4, 2, 3, 2, 5, 3, 5, 6, 4, 3, 3, 3, 3, 3, 2, 4, 3, 5, 5, 4, 5, 6, 5, 2, 4, 4, 4, 4, 5, 7, 6, 7, 5, 4, 4, 4, 4, 3, 4, 2, 3, 6, 4, 8, 5, 4, 3, 2, 6, 5, 5, 5, 3, 4, 4, 4, 3, 6, 4, 8, 4, 5, 4, 3, 4, 2, 4, 3, 3, 3, 8, 5, 5, 7, 2, 2, 7, 4, 5, 2, 6, 4, 3, 5, 6, 4, 3, 4, 2, 4, 7, 2, 5, 5, 4, 7, 5, 3, 4, 3, 4, 4, 3, 4, 6, 3, 2, 2, 2, 2, 4, 6, 2, 4, 3, 4, 5, 3, 3, 6, 3, 8, 2, 5, 3, 4, 4, 4, 3, 3, 3, 6, 4, 6, 3, 2, 4, 2, 3, 4, 2, 5, 3, 7, 4, 4, 2, 4, 5, 7, 3, 5, 5, 2, 8, 4, 3, 2, 2, 5, 3, 5, 8, 8, 3, 6, 5, 6, 4, 7, 2, 4, 3, 6, 5, 2, 3, 5, 8, 3, 3, 2, 3, 9, 5, 2, 6, 6, 4, 2, 5, 5, 3, 4, 5, 5, 2, 3, 5, 3, 2, 4, 8, 8, 8, 7, 8, 3, 5, 3, 2, 5, 7, 3, 4, 4, 6, 3, 2, 5, 7, 7, 4, 6, 4, 3, 3, 5, 2, 6, 3, 2, 3, 4, 3, 3, 4, 7, 5, 6, 5, 8, 4, 4, 6, 3, 5, 6, 2, 3, 5, 4, 8, 3, 7, 2, 4, 3, 4, 4, 6, 4, 5, 3, 5, 2, 6, 7, 4, 5, 7, 3, 7, 5, 3, 4, 4, 8, 4, 7, 3, 3, 3, 2, 4, 8, 5, 2, 2, 5, 2, 8, 6, 8, 4, 2, 3, 2, 5, 4, 4, 5, 8, 7, 5, 4, 5, 4, 4, 3, 5, 8, 3, 3, 3, 3, 3, 4, 4, 4, 3, 5, 2, 4, 7, 8, 3, 2, 6, 4, 3, 7, 2, 4, 2, 4, 6, 4, 4, 4, 5, 6, 2, 7, 7, 7, 4, 3, 4, 5, 8, 3, 5, 6, 4, 5, 3, 3, 3, 2, 2, 2, 7, 2, 6, 5, 4, 2, 4, 6, 3, 2, 3, 5, 3, 3, 3, 3, 2, 7, 2, 2, 4, 4, 6, 4, 4, 8, 3, 5, 3, 6, 5, 3, 3, 3, 2, 7, 3, 3, 3, 3, 3, 4, 2, 2, 5, 9, 8, 5, 5, 6, 5, 8, 3, 3, 5, 3, 8, 2, 5, 2, 4, 3, 3, 2, 6, 6, 10, 4, 6, 6, 4, 2, 5, 4, 3, 3, 6, 2, 4, 5, 6, 5, 3, 4, 5, 4, 7, 5, 4, 6, 3, 7, 4, 2, 5, 7, 5, 5, 5, 2, 3, 6, 4, 3, 3, 7, 5, 8, 5, 4, 5, 5, 10, 4, 4, 6, 4, 2, 2, 5, 4, 4, 6, 5, 7, 5, 7, 2, 4, 5, 5, 3, 7, 2, 4, 5, 4, 6, 4, 2, 4, 3, 6, 5, 3, 3, 5, 6, 2, 7, 3, 7, 7, 4, 3, 4, 4, 2, 4, 5, 3, 3, 3, 9, 5, 6, 3, 4, 3, 6, 4, 4, 4, 7, 7, 6, 3, 4, 4, 5, 9, 4, 2, 2, 3, 4, 3, 3, 4, 4, 3, 2, 11, 4, 9, 3, 3, 6, 3, 6, 3, 2, 5, 3, 3, 5, 4, 7, 4, 5, 5, 3, 2, 7, 4, 3, 6, 5, 6, 5, 5, 4, 2, 2, 3, 9, 6, 3, 5, 5, 7, 3, 4, 7, 6, 7, 2, 6, 2, 3, 7, 5, 3, 5, 8, 3, 3, 7, 6, 3, 2, 3, 4, 3, 5, 2, 3, 4, 3, 3, 4, 8, 2, 3, 4, 3, 6, 4, 4, 3, 4, 3, 4, 4, 2, 9, 2, 4, 6, 6, 4, 3, 2, 6, 6, 6, 6, 2, 5, 4, 4, 3, 4, 4, 5, 5, 3, 4, 3, 5, 3, 3, 7, 4, 6, 8, 5, 3, 5, 10, 4, 4, 3, 4, 7, 3, 5, 4, 4, 2, 5, 2, 2, 8, 4, 4, 3, 3, 2, 4, 4, 2, 5, 5, 3, 3, 6, 7, 3, 4, 4, 7, 4, 5, 4, 4, 4, 4, 6, 2, 4, 4, 4, 3, 5, 5, 2, 2, 3, 3, 9, 2, 9, 4, 5, 4, 3, 8, 3, 5, 7, 3, 3, 6, 2, 5, 3, 4, 3, 4, 4, 3, 4, 2, 4, 9, 3, 8, 3, 4, 7, 3, 7, 3, 8, 4, 8, 4, 5, 2, 4, 5, 3, 2, 3, 3, 7, 4, 4, 5, 4, 5, 6, 6, 7, 7, 5, 2, 2, 7, 2, 5, 5, 5, 4, 3, 6, 5, 5, 5, 8, 4, 4, 3, 3, 5, 6, 6, 2, 4, 6, 4, 5, 3, 10, 2, 4, 7, 7, 4, 8, 5, 3, 2, 4, 4, 5, 4, 3, 3, 4, 7, 6, 3, 4, 4, 3, 4, 3, 2, 6, 7, 4, 3, 5, 6, 7, 7, 4, 4, 7, 2, 4, 3, 4, 4, 5, 5, 3, 5, 3, 8, 3, 3, 7, 4, 4, 7, 9, 3, 3, 4, 5, 3, 2, 4, 3, 3, 3, 4, 5, 3, 5, 5, 5, 2, 3, 5, 2, 2, 4, 8, 4, 6, 3, 6, 6, 5, 3, 4, 4, 4, 7, 7, 3, 2, 7, 5, 3, 6, 3, 5, 2, 4, 4, 3, 4, 2, 3, 5, 5, 4, 3, 3, 6, 3, 5, 6, 4, 2, 7, 4, 5, 3, 4, 3, 5, 5, 5, 3, 3, 4, 6, 2, 5, 3, 8, 5, 2, 3, 7, 4, 3, 5, 3, 7, 4, 5, 3, 2, 2, 3, 5, 6, 7, 3, 6, 5, 4, 2, 2, 2, 5, 4, 2, 5, 8, 4, 4, 4, 3, 5, 2, 6, 3, 5, 5, 5, 4, 8, 3, 3, 4, 3, 4, 8, 4, 2, 5, 3, 4, 4, 4, 4, 2, 2, 3, 4, 3, 4, 3, 2, 4, 3, 5, 6, 2, 3, 3, 10, 6, 3, 2, 8, 4, 2, 2, 4, 3, 7, 6, 5, 3, 4, 5, 3, 5, 4, 6, 4, 3, 4, 4, 3, 5, 4, 3, 2, 3, 3, 7, 2, 3, 4, 6, 4, 3, 3, 5, 2, 4, 2, 2, 6, 2, 3, 4, 3, 5, 2, 2, 5, 3, 4, 4, 7, 4, 5, 2, 2, 6, 4, 8, 4, 3, 4, 3, 7, 7, 4, 7, 6, 7, 4, 4, 3, 6, 4, 4, 2, 5, 6, 5, 3, 3, 6, 3, 5, 3, 2, 3, 3, 3, 8, 10, 3, 2, 3, 4, 6, 4, 4, 6, 4, 3, 4, 4, 5, 5, 6, 5, 3, 5, 3, 4, 4, 8, 5, 5, 3, 4, 3, 3, 2, 3, 3, 2, 5, 5, 6, 2, 3, 2, 2, 3, 5, 5, 5, 4, 3, 3, 2, 3, 3, 7, 3, 5, 5, 3, 2, 3, 6, 7, 4, 8, 3, 7, 8, 3, 4, 4, 3, 6, 4, 3, 3, 5, 5, 7, 4, 3, 2, 5, 3, 4, 7, 1, 4, 6, 4, 6, 6, 4, 4, 6, 5, 5, 4, 4, 2, 4, 3, 4, 6, 4, 5, 2, 2, 3, 6, 3, 3, 5, 3, 3, 2, 3, 3, 8, 7, 5, 6, 5, 2, 7, 4, 6, 2, 3, 4, 6, 5, 6, 5, 4, 4, 4, 2, 3, 5, 3, 3, 4, 2, 5, 5, 6, 9, 3, 4, 7, 3, 4, 2, 5, 6, 5, 4, 4, 2, 4, 3, 7, 6, 9, 4, 4, 6, 4, 4, 7, 2, 4, 4, 6, 3, 5, 5, 5, 4, 6, 5, 4, 2, 3, 6, 6, 2, 2, 3, 2, 8, 6, 2, 3, 3, 5, 5, 4, 6, 3, 2, 6, 4, 3, 3, 6, 2, 2, 7, 7, 5, 3, 4, 2, 4, 5, 2, 2, 3, 4, 6, 6, 6, 2, 3, 4, 6, 4, 6, 4, 4, 3, 5, 2, 4, 3, 6, 4, 5, 2, 3, 3, 5, 5, 5, 3, 2, 3, 4, 4, 3, 4, 5, 6, 3, 2, 3, 6, 3, 3, 5, 4, 8, 7, 3, 4, 6, 6, 3, 5, 9, 2, 3, 2, 5, 2, 5, 4, 7, 3, 5, 7, 3, 2, 2, 8, 2, 6, 6, 4, 4, 7, 5, 6, 6, 5, 3, 4, 5, 3, 5, 6, 4, 2, 4, 5, 2, 2, 6, 4, 3, 4, 4, 4, 2, 5, 2, 5, 3, 2, 6, 4, 3, 4, 7, 2, 5, 4, 3, 3, 5, 5, 5, 3, 3, 4, 4, 3, 5, 5, 5, 3, 3, 7, 6, 4, 4, 2, 2, 2, 7, 6, 5, 4, 7, 4, 4, 2, 2, 4, 4, 7, 7, 5, 5, 3, 3, 2, 5, 3, 3, 2, 4, 4, 3, 6, 4, 4, 2, 6, 2, 7, 5, 4, 5, 3, 3, 4, 3, 2, 5, 3, 4, 4, 8, 3, 5, 3, 8, 2, 2, 5, 5, 4, 6, 5, 5, 2, 7, 5, 3, 4, 5, 3, 6, 2, 2, 6, 6, 2, 9, 4, 3, 4, 3, 4, 3, 4, 7, 4, 3, 7, 4, 7, 4, 4, 6, 3, 6, 4, 8, 4, 5, 5, 5, 2, 3, 5, 5, 2, 7, 4, 6, 3, 4, 4, 5, 3, 4, 5, 5, 3, 4, 6, 3, 2, 5, 2, 6, 6, 2, 5, 7, 5, 2, 6, 4, 8, 4, 5, 4, 3, 3, 4, 9, 7, 3, 9, 2, 2, 3, 4, 3, 4, 8, 5, 3, 4, 4, 2, 3, 3, 3, 3, 4, 3, 5, 4, 6, 3, 4, 4, 5, 2, 4, 5, 9, 5, 2, 8, 3, 5, 2, 4, 7, 4, 4, 6, 4, 6, 5, 5, 2, 3, 6, 4, 2, 2, 7, 6, 4, 8, 7, 3, 5, 5, 3, 4, 4, 3, 5, 4, 6, 3, 4, 4, 6, 2, 3, 3, 2, 3, 2, 3, 2, 4, 3, 4, 6, 3, 7, 2, 2, 3, 4, 4, 2, 4, 2, 4, 3, 3, 4, 4, 5, 3, 4, 3, 3, 3, 4, 2, 5, 5, 3, 8, 5, 2, 2, 5, 10, 2, 10, 4, 2, 5, 5, 3, 4, 4, 4, 4, 4, 6, 7, 5, 4, 4, 3, 2, 4, 3, 5, 4, 3, 5, 5, 5, 2, 3, 2, 2, 4, 3, 2, 4, 3, 3, 4, 2, 8, 5, 7, 4, 3, 2, 7, 2, 5, 2, 4, 4, 6, 3, 2, 4, 4, 6, 7, 4, 6, 4, 3, 2, 3, 4, 5, 4, 3, 8, 8, 5, 3, 4, 4, 10, 3, 5, 5, 5, 4, 2, 6, 3, 4, 4, 3, 2, 4, 4, 7, 5, 3, 3, 5, 6, 3, 2, 2, 3, 2, 6, 3, 2, 5, 4, 5, 2, 1, 4, 2, 2, 3, 7, 3, 6, 4, 5, 7, 3, 4, 4, 3, 7, 4, 7, 3, 6, 3, 5, 2, 5, 4, 10, 4, 5, 3, 3, 2, 5, 6, 5, 4, 6, 2, 2, 3, 6, 6, 4, 2, 3, 7, 4, 4, 3, 6, 7, 3, 4, 3, 5, 4, 6, 5, 3, 4, 4, 5, 3, 6, 2, 2, 6, 4, 7, 3, 2, 4, 5, 5, 2, 4, 4, 5, 3, 2, 4, 2, 5, 4, 5, 3, 3, 4, 4, 4, 4, 2, 6, 6, 2, 4, 5, 6, 3, 4, 6, 3, 3, 4, 3, 7, 3, 5, 3, 5, 2, 3, 3, 6, 4, 6, 4, 4, 4, 7, 6, 3, 5, 4, 6, 7, 4, 4, 5, 5, 2, 2, 5, 3, 5, 2, 4, 7, 3, 3, 5, 3, 5, 6, 4, 2, 4, 6, 3, 3, 2, 3, 5, 4, 5, 2, 3, 6, 7, 5, 3, 3, 3, 8, 3, 3, 5, 3, 4, 2, 3, 6, 6, 6, 2, 3, 5, 4, 5, 2, 3, 4, 4, 2, 5, 2, 3, 7, 7, 7, 3, 5, 6, 3, 2, 3, 3, 6, 3, 7, 5, 3, 4, 4, 5, 4, 7, 2, 3, 4, 5, 4, 3, 5, 4, 3, 6, 7, 3, 4, 6, 3, 3, 7, 8, 5, 2, 3, 10, 2, 5, 4, 3, 2, 2, 4, 2, 4, 7, 3, 6, 3, 6, 3, 2, 2, 3, 2, 5, 3, 5, 2, 3, 3, 6, 7, 5, 4, 2, 3, 2, 8, 2, 5, 6, 2, 4, 2, 6, 5, 2, 2, 7, 2, 3, 4, 7, 5, 4, 3, 6, 4, 7, 5, 8, 4, 7, 5, 2, 2, 3, 3, 4, 4, 2, 9, 7, 4, 6, 3, 4, 6, 6, 6, 2, 2, 3, 4, 2, 8, 4, 4, 2, 3, 3, 4, 4, 4, 4, 7, 4, 10, 3, 3, 8, 4, 3, 3, 3, 5, 3, 6, 4, 4, 4, 5, 4, 4, 8, 4, 4, 3, 7, 4, 4, 4, 4, 4, 4, 3, 2, 4, 2, 7, 5, 5, 3, 7, 5, 3, 4, 6, 2, 2, 2, 5, 7, 3, 5, 4, 5, 5, 7, 2, 2, 7, 4, 3, 3, 7, 3, 3, 3, 4, 4, 5, 9, 6, 4, 4, 6, 2, 3, 2, 6, 4, 6, 4, 2, 3, 6, 4, 3, 4, 4, 9, 2, 7, 4, 2, 2, 3, 9, 2, 4, 5, 3, 3, 4, 5, 4, 4, 7, 3, 2, 3, 3, 6, 5, 6, 6, 4, 3, 3, 6, 4, 4, 7, 3, 3, 9, 3, 3, 3, 2, 2, 2, 2, 3, 5, 5, 4, 7, 4, 4, 6, 2, 4, 3, 7, 7, 3, 5, 4, 5, 9, 6, 3, 8, 4, 6, 2, 3, 2, 2, 2, 2, 7, 3, 5, 4, 2, 4, 3, 4, 3, 2, 3, 2, 5, 8, 4, 2, 3, 6, 3, 2, 2, 8, 4, 6, 5, 3, 8, 2, 5, 8, 2, 3, 7, 4, 7, 3, 2, 5, 2, 6, 2, 8, 2, 3, 5, 5, 2, 6, 3, 4, 4, 2, 5, 4, 4, 8, 2, 7, 8, 6, 3, 4, 5, 3, 2, 4, 5, 5, 4, 5, 5, 5, 4, 4, 7, 6, 6, 3, 5, 5, 9, 4, 4, 3, 3, 2, 3, 5, 2, 5, 5, 2, 2, 2, 5, 6, 7, 4, 5, 6, 3, 8, 3, 5, 3, 2, 6, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 5, 4, 3, 3, 2, 4, 3, 4, 2, 3, 3, 3, 5, 3, 2, 3, 2, 2, 4, 4, 6, 2, 7, 4, 4, 2, 5, 2, 4, 6, 4, 7, 4, 4, 2, 5, 2, 5, 2, 2, 2, 3, 5, 5, 4, 6, 6, 4, 5, 2, 4, 4, 3, 4, 5, 5, 4, 3, 6, 2, 6, 3, 5, 5, 6, 6, 4, 3, 3, 2, 3, 6, 3, 3, 4, 3, 5, 10, 6, 3, 4, 4, 4, 5, 2, 4, 9, 4, 2, 2, 3, 3, 4, 5, 3, 2, 4, 5, 2, 3, 3, 2, 4, 7, 4, 5, 6, 3, 5, 4, 5, 6, 2, 5, 4, 2, 2, 3, 4, 2, 4, 8, 4, 2, 2, 3, 9, 2, 8, 2, 4, 4, 4, 8, 2, 4, 5, 5, 6, 3, 2, 5, 6, 3, 7, 5, 4, 4, 2, 6, 6, 6, 3, 4, 5, 5, 5, 5, 4, 5, 4, 2, 3, 4, 5, 2, 3, 2, 3, 6, 6, 2, 4, 4, 4, 5, 4, 8, 3, 3, 6, 2, 3, 3, 2, 5, 5, 4, 3, 2, 4, 3, 6, 2, 9, 3, 5, 4, 2, 8, 4, 5, 2, 2, 3, 4, 6, 4, 6, 6, 6, 4, 9, 6, 10, 2, 3, 3, 5, 5, 3, 4, 2, 3, 7, 3, 5, 3, 6, 2, 2, 5, 3, 3, 4, 3, 3, 4, 3, 7, 4, 8, 5, 4, 5, 8, 6, 6, 4, 4, 3, 4, 5, 5, 3, 3, 3, 2, 2, 7, 4, 4, 4, 4, 2, 2, 3, 4, 4, 5, 11, 3, 6, 4, 2, 2, 5, 3, 2, 3, 4, 6, 4, 6, 6, 3, 7, 4, 2, 3, 4, 3, 2, 5, 2, 2, 5, 4, 4, 4, 4, 5, 4, 5, 4, 4, 5, 3, 3, 5, 4, 3, 3, 3, 5, 2, 4, 4, 5, 3, 7, 3, 7, 2, 3, 4, 5, 4, 3, 5, 4, 4, 2, 2, 2, 5, 4, 2, 2, 4, 7, 4, 8, 4, 2, 5, 3, 3, 6, 5, 2, 6, 3, 3, 3, 3, 4, 4, 2, 7, 8, 3, 2, 8, 4, 3, 4, 3, 3, 4, 3, 8, 6, 4, 2, 4, 6, 5, 6, 3, 8, 2, 4, 4, 7, 8, 5, 2, 4, 4, 5, 4, 5, 5, 7, 6, 7, 2, 9, 7, 3, 4, 6, 6, 3, 5, 2, 3, 6, 5, 5, 8, 9, 6, 6, 3, 5, 5, 5, 4, 2, 2, 3, 1, 5, 3, 3, 4, 4, 2, 3, 2, 4, 9, 4, 4, 2, 4, 5, 6, 3, 8, 4, 5, 7, 7, 2, 7, 5, 9, 2, 4, 3, 5, 3, 2, 4, 4, 4, 3, 3, 6, 3, 8, 3, 4, 8, 4, 7, 2, 2, 10, 5, 4, 5, 9, 4, 4, 7, 3, 2, 8, 5, 4, 3, 2, 5, 4, 3, 6, 7, 3, 3, 4, 4, 4, 4, 2, 6, 4, 3, 2, 7, 2, 5, 3, 9, 3, 5, 6, 5, 4, 2, 8, 2, 6, 2, 5, 2, 4, 4, 4, 3, 8, 6, 3, 5, 6, 5, 5, 3, 3, 4, 5, 6, 7, 4, 4, 5, 6, 3, 3, 8, 5, 5, 7, 3, 2, 8, 3, 2, 3, 2, 4, 7, 8, 4, 2, 6, 5, 4, 5, 2, 2, 3, 3, 3, 8, 2, 2, 2, 3, 3, 6, 4, 6, 4, 5, 5, 3, 5, 2, 6, 6, 8, 3, 2, 4, 4, 3, 3, 2, 3, 2, 3, 4, 7, 2, 3, 3, 2, 7, 7, 3, 4, 4, 8, 4, 4, 6, 2, 6, 3, 4, 3, 6, 6, 3, 7, 4, 3, 3, 2, 2, 4, 2, 5, 4, 6, 4, 6, 3, 3, 4, 3, 3, 4, 5, 4, 4, 4, 3, 2, 4, 3, 2, 4, 5, 3, 3, 6, 5, 4, 5, 2, 5, 6, 3, 7, 5, 4, 3, 2, 5, 5, 7, 5, 6, 3, 2, 4, 7, 5, 3, 3, 6, 5, 2, 6, 5, 3, 3, 3, 4, 3, 2, 5, 2, 9, 2, 3, 2, 3, 3, 3, 2, 3, 4, 4, 4, 7, 4, 2, 5, 4, 2, 3, 4, 4, 3, 2, 2, 4, 2, 3, 4, 4, 4, 6, 4, 3, 2, 2, 6, 6, 6, 5, 4, 5, 3, 2, 4, 5, 2, 3, 4, 5, 4, 4, 6, 2, 3, 3, 2, 4, 4, 4, 3, 4, 3, 3, 6, 6, 5, 3, 2, 5, 3, 3, 3, 2, 4, 4, 4, 4, 2, 5, 6, 5, 2, 4, 2, 7, 4, 6, 7, 6, 3, 3, 4, 2, 3, 3, 7, 6, 5, 4, 6, 6, 3, 4, 3, 3, 4, 4, 6, 3, 4, 4, 7, 4, 4, 3, 5, 6, 5, 8, 5, 2, 4, 5, 5, 8, 7, 5, 4, 4, 4, 7, 4, 5, 5, 5, 5, 4, 8, 6, 3, 3, 4, 6, 3, 8, 7, 2, 2, 3, 2, 2, 5, 8, 3, 5, 3, 6, 5, 7, 5, 2, 2, 5, 2, 2, 3, 6, 5, 5, 4, 4, 3, 3, 5, 3, 4, 3, 4, 5, 3, 5, 3, 4, 4, 5, 5, 11, 5, 4, 8, 2, 4, 3, 4, 6, 2, 3, 3, 3, 10, 6, 5, 6, 4, 4, 6, 3, 2, 3, 3, 3, 6, 4, 7, 4, 3, 7, 5, 3, 4, 2, 5, 4, 5, 3, 4, 4, 3, 5, 4, 4, 6, 10, 3, 2, 4, 5, 3, 6, 4, 3, 5, 2, 5, 3, 7, 3, 5, 7, 3, 5, 4, 2, 3, 4, 6, 3, 2, 4, 3, 3, 4, 4, 4, 3, 4, 3, 5, 3, 3, 6, 5, 5, 5, 7, 9, 6, 4, 3, 3, 5, 5, 8, 6, 5, 5, 9, 6, 3, 2, 5, 4, 3, 6, 3, 4, 4, 3, 2, 5, 3, 6, 4, 3, 7, 4, 6, 2, 4, 2, 6, 4, 4, 9, 2, 7, 8, 2, 8, 5, 5, 5, 5, 4, 5, 3, 4, 5, 4, 4, 5, 2, 6, 3, 4, 3, 3, 5, 6, 5, 3, 3, 2, 5, 6, 7, 7, 6, 7, 4, 4, 4, 4, 4, 3, 5, 4, 4, 6, 6, 6, 6, 6, 7, 3, 2, 3, 3, 5, 4, 5, 6, 2, 2, 3, 4, 5, 2, 5, 4, 7, 2, 4, 5, 3, 3, 5, 3, 4, 5, 2, 2, 6, 5, 3, 3, 4, 4, 2, 6, 2, 2, 6, 3, 6, 8, 2, 2, 3, 3, 3, 5, 7, 2, 4, 4, 5, 3, 2, 4, 3, 4, 7, 3, 3, 4, 2, 2, 6, 2, 5, 6, 2, 5, 3, 2, 2, 4, 6, 6, 2, 3, 2, 7, 2, 5, 3, 3, 8, 2, 9, 5, 5, 3, 6, 4, 3, 4, 3, 3, 4, 7, 4, 9, 5, 4, 7, 4, 4, 4, 2, 5, 3, 6, 6, 5, 4, 5, 5, 3, 8, 6, 4, 6, 2, 3, 3, 4, 5, 3, 6, 7, 5, 6, 2, 5, 4, 2, 5, 7, 3, 3, 3, 5, 4, 3, 4, 2, 6, 8, 3, 3, 3, 4, 5, 2, 2, 5, 3, 6, 5, 7, 2, 3, 6, 4, 2, 3, 5, 2, 2, 8, 2, 3, 6, 8, 4, 5, 6, 4, 3, 2, 2, 3, 4, 6, 4, 7, 3, 8, 7, 2, 4, 3, 2, 4, 4, 3, 6, 4, 6, 4, 9, 7, 6, 3, 4, 3, 4, 4, 4, 5, 4, 3, 2, 3, 5, 5, 2, 3, 2, 2, 3, 4, 3, 6, 2, 4, 4, 4, 3, 3, 4, 5, 5, 4, 6, 7, 4, 2, 5, 5, 6, 3, 3, 2, 3, 7, 2, 5, 4, 3, 3, 7, 10, 2, 5, 5, 2, 3, 3, 2, 3, 2, 5, 2, 6, 2, 2, 3, 4, 2, 5, 4, 5, 5, 2, 9, 5, 5, 4, 6, 3, 5, 9, 5, 3, 7, 3, 3, 4, 6, 5, 5, 4, 3, 4, 4, 4, 2, 4, 3, 4, 3, 3, 4, 2, 3, 3, 4, 6, 3, 4, 3, 3, 6, 7, 4, 3, 7, 2, 4, 3, 3, 8, 6, 4, 4, 3, 4, 5, 2, 5, 4, 3, 4, 3, 6, 2, 5, 3, 3, 2, 5, 4, 2, 6, 5, 3, 3, 3, 3, 2, 6, 7, 3, 3, 3, 3, 4, 7, 6, 3, 4, 6, 4, 4, 5, 2, 5, 7, 2, 4, 8, 3, 3, 4, 9, 3, 2, 6, 5, 6, 3, 8, 3, 3, 8, 4, 2, 7, 3, 4, 2, 6, 5, 3, 5, 3, 2, 3, 3, 3, 2, 3, 4, 4, 4, 2, 6, 2, 3, 5, 8, 2, 3, 8, 3, 2, 6, 2, 5, 3, 4, 5, 4, 4, 4, 3, 3, 3, 4, 5, 3, 3, 2, 5, 8, 8, 6, 2, 3, 8, 3, 2, 6, 2, 2, 2, 4, 3, 5, 1, 2, 2, 3, 7, 2, 6, 2, 5, 5, 6, 5, 6, 4, 7, 4, 2, 4, 5, 2, 5, 5, 4, 3, 3, 4, 2, 3, 3, 4, 7, 3, 8, 4, 2, 4, 5, 3, 10, 3, 2, 2, 7, 5, 3, 2, 2, 4, 4, 7, 4, 4, 6, 5, 2, 4, 6, 4, 6, 9, 6, 5, 3, 2, 6, 7, 7, 4, 6, 5, 8, 4, 2, 2, 3, 5, 2, 3, 7, 4, 5, 5, 3, 8, 4, 5, 3, 2, 5, 3, 2, 3, 5, 2, 7, 4, 3, 4, 4, 2, 2, 3, 3, 2, 5, 2, 6, 4, 3, 2, 7, 3, 5, 8, 3, 3, 3, 5, 7, 6, 2, 2, 3, 2, 7, 4, 3, 4, 2, 7, 3, 2, 4, 4, 5, 5, 7, 2, 5, 3, 8, 5, 4, 3, 2, 6, 3, 8, 4, 6, 3, 10, 2, 2, 4, 9, 4, 2, 2, 3, 6, 2, 3, 6, 6, 2, 5, 2, 2, 4, 5, 2, 7, 6, 3, 4, 4, 2, 2, 9, 5, 4, 3, 3, 4, 2, 4, 8, 7, 2, 5, 7, 4, 3, 4, 7, 4, 4, 5, 5, 3, 7, 3, 5, 2, 3, 4, 2, 5, 4, 4, 2, 2, 5, 3, 5, 5, 4, 3, 4, 6, 3, 4, 6, 3, 3, 3, 3, 4, 5, 9, 3, 5, 7, 3, 2, 5, 6, 3, 2, 5, 7, 9, 3, 8, 6, 2, 2, 4, 5, 5, 5, 3, 6, 4, 3, 2, 5, 3, 4, 6, 3, 4, 7, 3, 3, 2, 5, 7, 4, 6, 4, 3, 5, 3, 4, 2, 2, 2, 3, 4, 4, 5, 5, 5, 2, 3, 6, 4, 5, 2, 3, 3, 5, 4, 3, 4, 5, 4, 7, 3, 3, 6, 3, 2, 7, 2, 4, 5, 8, 7, 7, 2, 3, 5, 6, 3, 3, 5, 3, 7, 3, 2, 6, 6, 10, 3, 2, 4, 6, 5, 2, 6, 6, 9, 4, 7, 10, 6, 3, 6, 4, 4, 4, 10, 2, 3, 6, 5, 5, 4, 2, 3, 3, 6, 4, 6, 6, 4, 3, 7, 2, 2, 3, 4, 4, 6, 5, 4, 2, 6, 2, 4, 4, 3, 2, 3, 4, 4, 5, 5, 6, 4, 4, 7, 3, 7, 2, 4, 3, 2, 4, 6, 4, 6, 5, 4, 3, 6, 3, 2, 3, 2, 4, 4, 6, 3, 2, 3, 5, 2, 7, 5, 3, 4, 4, 8, 3, 6, 2, 2, 5, 3, 3, 6, 5, 4, 5, 5, 4, 4, 6, 3, 5, 8, 3, 3, 9, 5, 2, 2, 3, 4, 3, 6, 3, 7, 7, 2, 4, 4, 5, 4, 5, 4, 5, 6, 6, 3, 3, 4, 3, 6, 4, 4, 2, 4, 3, 7, 3, 5, 7, 4, 4, 2, 4, 3, 4, 2, 3, 9, 5, 4, 2, 3, 3, 6, 4, 5, 3, 6, 4, 5, 5, 3, 4, 6, 4, 4, 3, 4, 7, 3, 4, 2, 4, 4, 2, 4, 3, 2, 4, 3, 3, 10, 7, 3, 3, 5, 4, 6, 4, 5, 4, 6, 4, 3, 4, 4, 5, 6, 7, 5, 2, 4, 2, 9, 2, 3, 7, 4, 6, 6, 5, 5, 8, 2, 3, 5, 6, 3, 8, 5, 3, 6, 2, 4, 4, 3, 5, 3, 4, 3, 4, 4, 5, 5, 4, 3, 7, 3, 5, 4, 3, 3, 4, 4, 4, 7, 7, 4, 3, 6, 5, 2, 6, 5, 5, 4, 5, 2, 4, 2, 5, 3, 4, 5, 2, 5, 9, 6, 8, 5, 2, 3, 6, 2, 4, 3, 4, 4, 5, 2, 5, 6, 2, 3, 3, 4, 2, 3, 5, 5, 5, 6, 9, 3, 7, 5, 3, 5, 3, 5, 4, 6, 2, 4, 2, 3, 5, 4, 8, 4, 4, 8, 2, 4, 8, 4, 3, 3, 6, 4, 4, 5, 8, 3, 8, 3, 5, 6, 7, 2, 3, 4, 8, 3, 6, 5, 4, 4, 9, 4, 5, 3, 3, 4, 4, 4, 4, 5, 5, 5, 7, 3, 4, 3, 9, 2, 7, 2, 3, 5, 3, 3, 6, 6, 3, 3, 8, 4, 3, 3, 5, 4, 2, 5, 3, 3, 5, 4, 4, 6, 3, 4, 4, 5, 5, 2, 5, 7, 6, 5, 7, 5, 3, 3, 5, 7, 2, 8, 6, 5, 5, 3, 2, 3, 4, 2, 8, 3, 7, 2, 3, 3, 5, 4, 7, 6, 6, 6, 3, 3, 2, 6, 3, 3, 6, 5, 4, 3, 6, 4, 3, 10, 5, 5, 4, 3, 4, 4, 6, 6, 5, 5, 2, 6, 5, 3, 5, 3, 2, 5, 6, 6, 2, 5, 9, 8, 2, 3, 3, 4, 8, 3, 3, 2, 4, 6, 4, 2, 9, 3, 4, 4, 6, 3, 4, 4, 3, 9, 2, 4, 4, 6, 5, 2, 9, 3, 3, 7, 4, 6, 3, 3, 4, 5, 5, 3, 5, 5, 10, 3, 3, 4, 4, 2, 3, 5, 3, 4, 5, 4, 4, 3, 2, 6, 4, 3, 3, 5, 5, 4, 2, 4, 3, 6, 3, 4, 3, 5, 3, 5, 2, 3, 5, 4, 5, 7, 5, 4, 3, 2, 3, 5, 3, 5, 5, 5, 2, 6, 8, 5, 2, 4, 6, 4, 2, 2, 2, 4, 4, 8, 2, 2, 3, 5, 3, 6, 3, 4, 6, 4, 7, 4, 2, 9, 5, 3, 2, 8, 2, 6, 2, 3, 8, 4, 5, 4, 7, 2, 2, 5, 6, 4, 4, 2, 4, 2, 5, 3, 8, 8, 6, 2, 5, 7, 5, 4, 3, 3, 10, 5, 2, 7, 5, 5, 5, 3, 2, 5, 5, 6, 8, 6, 4, 3, 6, 3, 2, 6, 8, 2, 3, 4, 3, 2, 4, 4, 6, 3, 5, 6, 2, 4, 5, 6, 3, 7, 6, 3, 7, 7, 3, 4, 3, 9, 6, 2, 6, 3, 4, 2, 4, 5, 3, 3, 3, 2, 3, 9, 6, 2, 8, 4, 4, 2, 5, 5, 3, 4, 3, 5, 10, 3, 3, 3, 2, 5, 2, 2, 4, 2, 3, 4, 6, 2, 6, 3, 3, 4, 3, 6, 6, 4, 2, 2, 4, 6, 3, 3, 7, 2, 4, 7, 4, 9, 4, 4, 4, 2, 4, 4, 5, 7, 5, 6, 3, 5, 5, 7, 7, 7, 5, 4, 6, 6, 4, 5, 3, 6, 3, 7, 5, 5, 4, 5, 7, 3, 3, 4, 4, 5, 5, 3, 4, 7, 6, 4, 3, 11, 2, 4, 5, 2, 2, 3, 3, 6, 6, 3, 4, 3, 7, 4, 10, 3, 6, 5, 2, 2, 4, 6, 3, 3, 5, 8, 5, 6, 4, 4, 3, 2, 3, 5, 3, 5, 6, 2, 3, 3, 2, 3, 4, 4, 4, 5, 4, 4, 2, 5, 2, 8, 5, 3, 4, 3, 4, 4, 5, 3, 4, 4, 4, 2, 3, 2, 3, 3, 7, 2, 5, 3, 3, 2, 3, 4, 6, 3, 3, 6, 5, 3, 2, 7, 3, 4, 2, 9, 5, 3, 2, 3, 4, 6, 3, 2, 5, 4, 7, 5, 4, 3, 2, 3, 5, 2, 3, 6, 9, 3, 2, 2, 3, 2, 7, 4, 3, 4, 5, 3, 2, 2, 2, 2, 9, 2, 4, 5, 2, 5, 3, 6, 3, 4, 4, 5, 4, 2, 2, 3, 6, 3, 3, 6, 4, 3, 7, 2, 5, 3, 4, 5, 5, 3, 3, 2, 4, 4, 6, 2, 2, 6, 6, 4, 3, 4, 5, 6, 2, 3, 3, 4, 2, 2, 4, 4, 3, 6, 5, 5, 2, 2, 2, 7, 6, 4, 3, 3, 2, 5, 3, 3, 2, 3, 2, 4, 5, 7, 8, 3, 4, 2, 3, 6, 5, 10, 3, 4, 3, 7, 4, 3, 4, 8, 4, 4, 4, 6, 4, 6, 3, 5, 7, 2, 8, 4, 6, 5, 4, 3, 2, 5, 4, 5, 5, 2, 5, 5, 3, 2, 3, 6, 2, 2, 3, 7, 4, 2, 4, 6, 5, 3, 4, 3, 3, 4, 5, 3, 5, 2, 6, 2, 6, 6, 3, 2, 2, 5, 5, 8, 10, 5, 6, 2, 4, 5, 2, 3, 5, 2, 6, 3, 6, 10, 8, 4, 3, 6, 5, 5, 4, 3, 2, 7, 7, 3, 3, 3, 2, 8, 2, 8, 4, 3, 6, 3, 3, 5, 3, 3, 2, 3, 3, 2, 4, 2, 5, 3, 4, 3, 3, 7, 8, 5, 6, 4, 6, 6, 5, 4, 4, 8, 7, 4, 3, 5, 6, 5, 5, 4, 3, 3, 3, 5, 3, 5, 6, 2, 6, 4, 6, 4, 5, 3, 2, 3, 4, 5, 3, 5, 8, 3, 4, 5, 4, 3, 2, 5, 4, 5, 8, 7, 3, 8, 7, 4, 6, 4, 2, 8, 4, 2, 8, 4, 4, 7, 2, 2, 3, 4, 4, 8, 2, 7, 7, 3, 2, 7, 4, 4, 7, 5, 5, 4, 5, 4, 4, 4, 3, 7, 6, 3, 5, 5, 3, 3, 5, 5, 4, 2, 4, 4, 4, 6, 5, 5, 5, 5, 6, 4, 4, 6, 3, 3, 5, 6, 4, 3, 6, 5, 3, 9, 8, 3, 2, 10, 2, 10, 5, 4, 3, 5, 4, 4, 3, 4, 4, 8, 5, 7, 8, 5, 3, 4, 4, 3, 5, 3, 3, 4, 4, 7, 10, 4, 3, 2, 4, 4, 3, 4, 6, 3, 3, 6, 5, 5, 5, 2, 3, 5, 6, 5, 6, 5, 6, 5, 3, 3, 5, 6, 3, 6, 6, 5, 10, 4, 2, 5, 7, 7, 2, 6, 3, 5, 2, 2, 8, 8, 6, 4, 10, 4, 2, 4, 5, 4, 2, 4, 4, 8, 4, 3, 7, 8, 2, 4, 3, 5, 5, 6, 3, 2, 3, 5, 2, 4, 2, 4, 8, 3, 2, 3, 3, 2, 3, 2, 2, 4, 3, 3, 3, 6, 2, 3, 2, 5, 3, 3, 7, 5, 4, 5, 5, 4, 3, 2, 3, 4, 3, 3, 5, 4, 4, 2, 3, 2, 9, 3, 1, 5, 5, 2, 3, 5, 4, 8, 4, 2, 6, 4, 2, 6, 3, 3, 5, 4, 5, 7, 3, 4, 3, 14, 3, 8, 4, 2, 3, 8, 2, 4, 4, 3, 8, 6, 3, 4, 3, 4, 3, 2, 6, 5, 2, 4, 9, 4, 6, 4, 2, 3, 2, 4, 4, 7, 6, 6, 2, 6, 6, 3, 2, 6, 6, 4, 3, 3, 2, 3, 4, 4, 4, 5, 3, 2, 8, 3, 3, 4, 4, 2, 8, 2, 5, 5, 3, 2, 3, 5, 8, 3, 2, 2, 4, 8, 4, 5, 4, 6, 3, 7, 3, 5, 7, 5, 3, 8, 3, 6, 3, 3, 9, 4, 2, 2, 7, 5, 7, 3, 5, 2, 3, 6, 9, 5, 2, 2, 5, 4, 2, 3, 3, 4, 6, 2, 4, 2, 3, 6, 3, 4, 3, 2, 2, 4, 2, 2, 3, 8, 4, 5, 6, 6, 5, 7, 7, 2, 5, 3, 4, 4, 4, 2, 4, 7, 8, 8, 3, 2, 5, 6, 4, 2, 5, 5, 4, 9, 8, 8, 4, 8, 6, 3, 4, 4, 2, 2, 6, 5, 4, 4, 4, 3, 2, 2, 5, 4, 2, 7, 2, 10, 5, 4, 5, 4, 2, 4, 5, 2, 3, 2, 5, 2, 2, 2, 3, 2, 3, 2, 3, 3, 5, 3, 3, 2, 2, 5, 4, 5, 6, 5, 2, 5, 3, 4, 2, 4, 4, 2, 4, 2, 2, 4, 3, 4, 3, 5, 5, 4, 2, 3, 3, 6, 7, 4, 2, 3, 3, 5, 4, 4, 3, 3, 2, 8, 6, 2, 7, 3, 3, 2, 9, 3, 3, 4, 5, 10, 4, 2, 3, 4, 4, 4, 5, 3, 4, 4, 3, 6, 4, 5, 4, 4, 8, 5, 2, 2, 4, 4, 2, 7, 3, 5, 5, 3, 3, 6, 5, 5, 6, 7, 7, 5, 4, 5, 3, 2, 4, 4, 3, 11, 4, 3, 5, 2, 10, 4, 3, 8, 9, 3, 3, 8, 2, 2, 6, 5, 4, 8, 8, 2, 5, 5, 2, 2, 3, 2, 7, 2, 6, 2, 5, 11, 4, 5, 5, 2, 7, 2, 4, 2, 4, 3, 4, 2, 3, 4, 2, 8, 7, 5, 5, 5, 4, 5, 3, 7, 3, 3, 5, 7, 5, 2, 3, 6, 4, 2, 3, 7, 5, 3, 3, 3, 4, 3, 7, 5, 2, 5, 5, 4, 3, 4, 2, 6, 4, 3, 3, 7, 4, 2, 6, 3, 3, 2, 3, 4, 2, 4, 2, 6, 4, 2, 5, 3, 7, 6, 4, 2, 4, 2, 2, 3, 2, 5, 2, 8, 4, 4, 5, 6, 3, 3, 4, 6, 3, 4, 5, 4, 3, 4, 4, 5, 5, 4, 4, 5, 2, 2, 3, 6, 2, 4, 2, 4, 4, 2, 5, 8, 8, 3, 6, 2, 5, 4, 2, 6, 5, 4, 4, 7, 4, 3, 5, 4, 7, 3, 3, 6, 8, 4, 4, 3, 2, 3, 3, 5, 2, 4, 2, 3, 2, 2, 4, 5, 4, 2, 5, 6, 3, 3, 2, 7, 6, 5, 6, 5, 4, 7, 6, 4, 7, 7, 2, 3, 5, 3, 5, 5, 4, 2, 5, 6, 10, 5, 4, 3, 6, 5, 3, 7, 3, 3, 3, 4, 5, 4, 3, 2, 3, 5, 4, 3, 8, 4, 7, 4, 4, 6, 3, 2, 4, 4, 6, 9, 7, 7, 3, 7, 4, 6, 2, 4, 5, 2, 5, 3, 5, 6, 3, 2, 4, 3, 2, 4, 6, 12, 4, 6, 8, 6, 2, 4, 4, 4, 4, 4, 2, 5, 3, 4, 5, 9, 2, 5, 4, 2, 6, 3, 6, 6, 4, 6, 2, 7, 4, 6, 3, 3, 4, 4, 4, 3, 6, 2, 6, 4, 4, 2, 4, 3, 3, 5, 9, 6, 3, 4, 6, 4, 4, 6, 10, 2, 5, 4, 9, 3, 5, 4, 9, 5, 6, 3, 3, 4, 3, 7, 4, 2, 3, 6, 6, 4, 5, 3, 4, 6, 5, 2, 3, 5, 6, 5, 4, 5, 5, 3, 4, 5, 2, 4, 7, 2, 3, 2, 7, 2, 5, 2, 3, 6, 5, 2, 3, 7, 4, 3, 4, 5, 2, 3, 3, 7, 4, 4, 4, 4, 2, 5, 7, 5, 2, 5, 4, 4, 4, 3, 6, 7, 2, 6, 7, 4, 3, 6, 5, 3, 4, 4, 4, 2, 6, 2, 2, 3, 4, 4, 2, 4, 2, 6, 5, 2, 4, 3, 2, 8, 7, 3, 7, 5, 2, 4, 4, 4, 2, 6, 5, 3, 6, 5, 5, 4, 3, 5, 4, 8, 6, 5, 3, 2, 4, 2, 7, 3, 2, 3, 3, 8, 8, 5, 3, 10, 3, 3, 4, 3, 6, 3, 5, 7, 4, 2, 7, 3, 4, 3, 3, 5, 4, 4, 6, 3, 6, 2, 7, 6, 6, 5, 6, 3, 5, 6, 4, 2, 5, 2, 5, 3, 5, 3, 3, 4, 5, 2, 4, 2, 2, 6, 3, 4, 2, 4, 2, 5, 6, 6, 4, 3, 3, 6, 5, 3, 5, 5, 2, 3, 3, 2, 4, 4, 4, 2, 3, 6, 4, 2, 4, 4, 6, 5, 3, 3, 8, 4, 3, 8, 3, 3, 6, 2, 7, 2, 3, 8, 4, 5, 3, 4, 8, 5, 7, 6, 3, 3, 3, 3, 5, 3, 3, 4, 3, 3, 2, 2, 2, 4, 6, 2, 6, 4, 2, 4, 6, 2, 3, 5, 4, 3, 6, 4, 3, 4, 4, 5, 5, 2, 4, 5, 2, 7, 2, 5, 3, 4, 3, 4, 5, 3, 7, 4, 10, 2, 4, 2, 5, 6, 3, 10, 3, 3, 5, 3, 5, 4, 5, 3, 4, 3, 5, 8, 4, 2, 3, 7, 3, 2, 2, 8, 8, 2, 2, 10, 2, 4, 2, 3, 4, 7, 5, 4, 3, 4, 6, 2, 4, 5, 4, 4, 2, 3, 5, 6, 6, 3, 3, 6, 4, 3, 9, 5, 5, 7, 6, 5, 3, 4, 5, 4, 3, 5, 4, 8, 5, 3, 5, 7, 2, 2, 5, 4, 4, 4, 4, 3, 4, 3, 4, 4, 5, 2, 5, 7, 5, 6, 1, 5, 3, 5, 3, 2, 4, 5, 9, 5, 2, 3, 6, 6, 5, 3, 4, 6, 6, 3, 2, 5, 4, 5, 2, 6, 2, 5, 3, 9, 3, 2, 5, 4, 2, 4, 5, 2, 4, 7, 7, 5, 3, 3, 3, 2, 3, 5, 4, 6, 4, 4, 5, 4, 6, 4, 3, 2, 6, 2, 5, 4, 5, 6, 8, 6, 4, 4, 5, 6, 4, 5, 6, 2, 5, 5, 5, 3, 5, 5, 6, 2, 7, 3, 3, 3, 5, 7, 3, 2, 4, 5, 7, 4, 4, 3, 2, 4, 4, 4, 2, 6, 4, 4, 2, 5, 6, 2, 4, 2, 4, 2, 3, 3, 8, 2, 7, 4, 5, 2, 4, 5, 4, 5, 4, 3, 7, 7, 2, 8, 4, 3, 5, 3, 3, 4, 4, 4, 6, 3, 2, 4, 3, 2, 4, 6, 5, 2, 4, 6, 10, 6, 2, 3, 6, 8, 3, 6, 8, 3, 3, 6, 2, 4, 2, 3, 6, 3, 3, 2, 3, 8, 5, 5, 3, 6, 2, 4, 4, 2, 6, 3, 3, 4, 7, 6, 3, 2, 3, 4, 4, 7, 3, 9, 3, 6, 6, 2, 4, 2, 5, 3, 5, 7, 2, 5, 4, 2, 5, 2, 5, 3, 3, 3, 2, 8, 4, 2, 8, 4, 4, 6, 4, 6, 5, 5, 4, 2, 9, 5, 2, 3, 3, 4, 3, 6, 3, 2, 7, 5, 3, 7, 6, 2, 3, 2, 2, 5, 2, 6, 4, 3, 5, 7, 6, 5, 4, 6, 3, 4, 3, 5, 3, 3, 2, 3, 4, 3, 3, 4, 2, 6, 3, 3, 8, 4, 5, 5, 3, 4, 6, 2, 4, 2, 9, 3, 4, 2, 3, 4, 4, 4, 3, 2, 3, 2, 4, 4, 5, 5, 4, 8, 3, 5, 6, 5, 2, 2, 3, 7, 5, 8, 3, 8, 4, 3, 3, 3, 10, 7, 2, 8, 6, 3, 7, 3, 7, 7, 2, 3, 2, 4, 4, 3, 5, 2, 3, 7, 4, 7, 4, 8, 5, 4, 7, 7, 4, 4, 5, 5, 5, 5, 8, 4, 3, 4, 3, 8, 4, 5, 6, 3, 2, 4, 3, 8, 2, 3, 3, 10, 6, 2, 6, 8, 2, 5, 8, 6, 9, 4, 5, 6, 5, 5, 7, 6, 3, 4, 3, 4, 3, 6, 2, 7, 7, 4, 6, 4, 3, 5, 5, 2, 6, 6, 7, 4, 2, 9, 2, 3, 2, 6, 4, 9, 5, 8, 5, 5, 3, 4, 5, 12, 5, 7, 3, 3, 4, 2, 3, 2, 6, 4, 2, 2, 3, 8, 2, 6, 6, 2, 3, 8, 4, 5, 5, 2, 3, 3, 2, 5, 4, 2, 3, 4, 3, 7, 2, 8, 4, 6, 4, 6, 2, 2, 3, 2, 5, 2, 5, 7, 4, 5, 4, 8, 6, 9, 2, 4, 2, 6, 5, 5, 2, 2, 6, 4, 3, 11, 8, 5, 4, 4, 4, 5, 2, 2, 3, 2, 6, 3, 5, 3, 5, 4, 3, 5, 3, 2, 4, 3, 3, 6, 6, 4, 4, 5, 2, 7, 3, 2, 5, 11, 5, 4, 4, 2, 2, 4, 5, 3, 2, 4, 7, 5, 5, 4, 3, 5, 4, 5, 8, 2, 6, 4, 3, 4, 4, 4, 8, 4, 4, 3, 4, 4, 2, 8, 3, 3, 3, 3, 3, 4, 3, 4, 2, 5, 3, 5, 2, 2, 3, 4, 4, 4, 2, 3, 4, 4, 3, 2, 3, 4, 2, 2, 2, 7, 2, 5, 3, 5, 4, 2, 2, 5, 8, 7, 6, 7, 3, 2, 5, 3, 6, 7, 3, 5, 6, 2, 2, 2, 6, 4, 5, 9, 3, 4, 4, 2, 8, 4, 6, 5, 5, 3, 5, 6, 3, 3, 8, 4, 2, 3, 2, 3, 3, 3, 4, 6, 7, 4, 4, 6, 2, 7, 3, 6, 3, 8, 8, 4, 3, 9, 3, 5, 5, 5, 6, 4, 2, 6, 5, 4, 3, 3, 6, 3, 3, 6, 3, 8, 4, 4, 5, 3, 5, 8, 5, 3, 8, 2, 2, 5, 2, 3, 4, 5, 4, 3, 6, 5, 6, 2, 3, 6, 4, 4, 6, 2, 2, 9, 6, 4, 7, 2, 5, 5, 3, 2, 4, 2, 3, 3, 4, 4, 3, 6, 2, 4, 4, 5, 6, 3, 4, 2, 3, 5, 2, 3, 7, 5, 5, 4, 4, 3, 6, 6, 6, 4, 6, 5, 5, 3, 4, 4, 3, 4, 2, 2, 4, 5, 8, 5, 3, 6, 3, 4, 2, 5, 5, 6, 3, 2, 3, 2, 7, 3, 4, 7, 5, 3, 4, 4, 2, 9, 8, 2, 6, 2, 8, 6, 3, 3, 3, 5, 7, 3, 2, 3, 5, 3, 2, 2, 2, 4, 2, 4, 2, 3, 3, 7, 4, 4, 7, 6, 3, 4, 6, 2, 3, 4, 4, 4, 6, 2, 4, 3, 2, 2, 5, 5, 4, 3, 5, 2, 5, 3, 3, 3, 4, 3, 4, 6, 6, 9, 3, 2, 2, 6, 6, 7, 4, 3, 8, 3, 6, 2, 7, 6, 7, 5, 6, 4, 4, 6, 5, 4, 4, 3, 7, 3, 2, 3, 4, 2, 3, 6, 5, 5, 3, 6, 4, 3, 3, 5, 6, 5, 3, 2, 8, 3, 2, 4, 7, 3, 5, 5, 5, 4, 2, 4, 4, 7, 7, 4, 6, 3, 3, 6, 7, 2, 5, 3, 6, 3, 5, 4, 5, 5, 2, 7, 3, 4, 5, 6, 5, 4, 2, 4, 2, 5, 7, 6, 3, 4, 3, 4, 3, 5, 6, 5, 7, 6, 5, 3, 4, 7, 2, 6, 4, 4, 8, 5, 4, 5, 4, 6, 4, 9, 7, 5, 4, 4, 5, 4, 5, 7, 5, 5, 3, 4, 2, 3, 2, 3, 2, 3, 7, 4, 6, 4, 6, 5, 7, 4, 3, 4, 4, 3, 8, 7, 8, 3, 4, 5, 2, 3, 7, 2, 5, 4, 4, 3, 3, 4, 5, 4, 4, 3, 3, 7, 4, 8, 2, 5, 5, 2, 4, 7, 3, 5, 6, 4, 3, 5, 5, 3, 6, 3, 3, 3, 2, 8, 3, 3, 4, 4, 5, 5, 5, 7, 3, 6, 3, 7, 3, 3, 6, 2, 3, 3, 5, 3, 3, 2, 5, 2, 7, 3, 8, 5, 3, 3, 3, 4, 2, 5, 2, 3, 4, 4, 3, 2, 2, 8, 7, 2, 3, 5, 5, 5, 6, 4, 2, 7, 4, 4, 5, 5, 5, 2, 3, 6, 3, 5, 5, 4, 6, 4, 8, 4, 4, 5, 6, 6, 4, 5, 2, 4, 5, 9, 4, 6, 2, 6, 3, 3, 4, 4, 4, 5, 4, 4, 8, 3, 3, 7, 4, 4, 5, 2, 4, 4, 4, 2, 3, 6, 5, 2, 4, 6, 4, 2, 2, 8, 3, 5, 8, 9, 8, 4, 3, 2, 6, 4, 2, 3, 7, 2, 4, 3, 3, 3, 8, 6, 4, 5, 5, 3, 7, 2, 3, 2, 2, 3, 4, 5, 7, 4, 3, 3, 5, 4, 3, 4, 4, 3, 3, 4, 6, 2, 5, 3, 4, 5, 4, 5, 5, 3, 5, 3, 5, 2, 2, 3, 7, 6, 3, 3, 6, 4, 2, 4, 8, 5, 3, 5, 3, 3, 5, 3, 4, 4, 4, 8, 8, 6, 7, 2, 3, 8, 2, 7, 3, 6, 8, 7, 3, 9, 3, 5, 2, 3, 4, 4, 4, 4, 2, 6, 4, 3, 3, 2, 5, 8, 2, 4, 4, 2, 2, 2, 4, 2, 3, 4, 3, 6, 4, 2, 3, 4, 3, 3, 2, 9, 8, 3, 2, 5, 2, 5, 2, 4, 2, 2, 9, 2, 6, 8, 5, 5, 3, 3, 8, 9, 7, 3, 5, 3, 7, 2, 5, 3, 3, 2, 3, 3, 6, 3, 4, 4, 3, 6, 3, 3, 3, 2, 2, 4, 5, 2, 3, 9, 3, 3, 3, 4, 2, 3, 3, 3, 9, 4, 4, 2, 3, 4, 2, 9, 5, 6, 4, 3, 2, 4, 3, 7, 7, 4, 8, 6, 7, 8, 2, 3, 10, 3, 4, 4, 11, 4, 5, 5, 6, 6, 3, 3, 8, 4, 5, 4, 3, 2, 5, 4, 6, 5, 4, 5, 2, 3, 3, 3, 6, 5, 4, 4, 5, 3, 4, 2, 3, 8, 7, 3, 6, 4, 7, 4, 4, 4, 2, 4, 4, 2, 3, 6, 3, 2, 7, 4, 4, 3, 6, 3, 4, 4, 5, 3, 2, 9, 3, 3, 6, 3, 4, 5, 4, 5, 4, 2, 3, 4, 3, 4, 3, 6, 3, 6, 6, 5, 5, 4, 4, 2, 3, 5, 5, 3, 5, 3, 3, 5, 2, 4, 2, 2, 4, 6, 2, 6, 4, 2, 5, 6, 6, 3, 3, 3, 4, 2, 6, 4, 5, 3, 2, 3, 3, 8, 6, 8, 9, 5, 3, 2, 2, 3, 6, 4, 4, 6, 4, 2, 8, 8, 4, 2, 2, 7, 5, 3, 3, 4, 6, 3, 4, 4, 4, 5, 4, 4, 7, 6, 3, 3, 6, 3, 3, 3, 6, 3, 6, 6, 2, 2, 2, 3, 2, 4, 3, 7, 2, 8, 2, 4, 4, 2, 9, 3, 6, 6, 2, 3, 5, 5, 5, 4, 5, 3, 3, 4, 4, 3, 4, 5, 2, 4, 10, 2, 4, 5, 3, 4, 7, 7, 6, 4, 3, 4, 4, 2, 5, 2, 2, 6, 8, 2, 2, 3, 5, 9, 4, 3, 3, 8, 2, 4, 2, 3, 4, 4, 3, 7, 4, 4, 7, 2, 4, 4, 6, 2, 3, 4, 4, 3, 4, 2, 4, 7, 6, 7, 2, 4, 7, 5, 6, 3, 4, 8, 3, 5, 7, 2, 2, 4, 4, 3, 2, 5, 4, 3, 3, 5, 4, 4, 4, 3, 3, 3, 6, 3, 7, 5, 10, 6, 6, 4, 3, 8, 2, 5, 2, 3, 4, 3, 3, 2, 2, 2, 4, 4, 3, 3, 4, 3, 2, 4, 4, 5, 5, 3, 3, 3, 2, 5, 2, 4, 2, 7, 4, 3, 6, 4, 7, 2, 2, 4, 2, 3, 5, 2, 4, 5, 2, 3, 5, 4, 4, 2, 4, 3, 3, 6, 5, 6, 6, 5, 3, 3, 5, 4, 4, 2, 4, 8, 7, 2, 6, 4, 3, 2, 5, 2, 4, 6, 4, 4, 5, 3, 3, 5, 3, 2, 6, 4, 4, 2, 6, 2, 2, 8, 6, 3, 7, 2, 4, 5, 4, 3, 3, 4, 4, 5, 6, 7, 9, 5, 2, 5, 3, 7, 6, 4, 6, 8, 6, 4, 2, 2, 6, 4, 3, 2, 6, 5, 3, 5, 3, 5, 3, 6, 3, 3, 2, 2, 7, 6, 5, 6, 6, 4, 2, 6, 2, 7, 3, 6, 8, 8, 6, 5, 6, 6, 4, 9, 5, 3, 8, 3, 7, 8, 3, 7, 8, 5, 3, 2, 4, 6, 3, 4, 2, 5, 5, 2, 3, 5, 5, 2, 7, 4, 3, 4, 4, 3, 3, 3, 6, 5, 9, 3, 6, 2, 4, 8, 4, 2, 5, 5, 9, 4, 6, 2, 2, 5, 3, 6, 3, 3, 3, 4, 5, 4, 2, 7, 4, 4, 7, 9, 7, 6, 2, 4, 7, 5, 8, 8, 4, 5, 2, 2, 3, 4, 4, 3, 3, 3, 4, 2, 7, 3, 3, 3, 2, 3, 6, 3, 2, 4, 4, 2, 4, 4, 4, 2, 6, 3, 3, 4, 3, 3, 2, 3, 8, 5, 5, 7, 2, 3, 3, 4, 4, 7, 2, 2, 3, 5, 3, 7, 5, 2, 3, 5, 4, 5, 7, 2, 7, 4, 4, 3, 5, 4, 5, 4, 5, 7, 4, 7, 4, 2, 4, 2, 8, 5, 4, 6, 3, 6, 6, 3, 3, 3, 2, 6, 6, 2, 5, 8, 6, 7, 5, 3, 4, 4, 3, 8, 6, 2, 4, 2, 4, 4, 2, 3, 7, 4, 2, 4, 4, 3, 5, 7, 3, 4, 8, 7, 2, 2, 2, 6, 2, 2, 3, 2, 3, 2, 2, 3, 5, 4, 4, 2, 8, 4, 3, 2, 3, 8, 6, 3, 3, 2, 4, 5, 3, 3, 5, 8, 4, 4, 7, 4, 6, 4, 7, 3, 4, 4, 2, 10, 2, 2, 6, 2, 4, 7, 2, 3, 3, 3, 5, 4, 5, 4, 5, 9, 7, 3, 4, 6, 2, 7, 4, 4, 5, 2, 7, 2, 4, 6, 3, 5, 4, 4, 4, 3, 4, 4, 9, 4, 4, 3, 4, 5, 3, 3, 3, 3, 6, 3, 3, 5, 4, 5, 6, 4, 2, 3, 4, 4, 8, 6, 2, 3, 5, 3, 3, 4, 4, 4, 4, 7, 10, 5, 3, 4, 5, 5, 4, 3, 3, 2, 7, 6, 4, 2, 7, 6, 5, 5, 4, 5, 3, 4, 3, 3, 5, 8, 4, 2, 6, 6, 6, 6, 5, 5, 9, 5, 6, 3, 2, 2, 5, 6, 6, 3, 4, 4, 2, 3, 3, 3, 7, 4, 5, 7, 2, 7, 6, 5, 3, 2, 2, 3, 4, 4, 8, 2, 5, 4, 5, 2, 2, 5, 5, 5, 5, 4, 3, 3, 7, 7, 5, 3, 4, 10, 3, 4, 3, 7, 3, 3, 2, 4, 3, 5, 2, 4, 3, 5, 4, 8, 5, 2, 5, 4, 4, 6, 10, 4, 3, 6, 5, 9, 5, 5, 5, 8, 7, 4, 2, 2, 3, 3, 6, 2, 5, 3, 5, 2, 4, 3, 6, 5, 6, 3, 5, 4, 3, 7, 3, 5, 3, 2, 5, 4, 4, 3, 5, 4, 2, 6, 3, 3, 4, 5, 6, 8, 5, 5, 5, 4, 4, 3, 2, 4, 6, 5, 3, 4, 3, 3, 7, 7, 3, 5, 8, 7, 2, 5, 2, 2, 3, 4, 4, 2, 2, 3, 5, 3, 5, 4, 6, 6, 6, 6, 3, 4, 6, 4, 3, 5, 2, 4, 3, 5, 2, 5, 3, 4, 4, 5, 5, 4, 6, 2, 4, 2, 3, 2, 5, 4, 5, 2, 2, 5, 7, 4, 3, 6, 2, 3, 6, 4, 7, 6, 4, 4, 6, 3, 8, 10, 2, 6, 3, 2, 5, 2, 3, 2, 5, 5, 5, 2, 6, 2, 6, 3, 5, 3, 6, 3, 5, 2, 3, 7, 7, 3, 7, 6, 3, 3, 3, 4, 2, 9, 4, 8, 6, 4, 7, 6, 2, 3, 5, 4, 4, 7, 5, 6, 4, 5, 9, 7, 4, 5, 8, 4, 4, 3, 5, 5, 2, 5, 5, 6, 2, 5, 4, 3, 3, 3, 3, 7, 5, 3, 3, 3, 3, 2, 2, 5, 2, 3, 5, 5, 2, 5, 5, 4, 6, 7, 5, 3, 5, 4, 5, 6, 3, 5, 3, 5, 7, 4, 3, 2, 7, 5, 5, 4, 7, 2, 3, 4, 3, 2, 2, 5, 4, 8, 2, 3, 5, 6, 5, 8, 4, 3, 4, 6, 2, 2, 2, 2, 3, 6, 9, 2, 2, 5, 2, 5, 6, 3, 2, 5, 4, 9, 4, 3, 4, 2, 2, 3, 4, 3, 4, 3, 3, 8, 5, 5, 3, 4, 3, 5, 6, 3, 7, 2, 3, 4, 5, 2, 3, 2, 5, 4, 2, 5, 2, 3, 6, 4, 5, 8, 5, 7, 3, 5, 3, 3, 5, 4, 4, 4, 4, 5, 2, 3, 7, 2, 3, 2, 3, 5, 3, 6, 4, 3, 5, 4, 4, 5, 2, 7, 7, 4, 7, 3, 3, 4, 2, 6, 3, 3, 5, 6, 7, 2, 4, 4, 4, 6, 5, 3, 4, 3, 3, 4, 3, 3, 6, 7, 5, 2, 5, 4, 5, 3, 6, 6, 2, 3, 7, 9, 10, 3, 5, 3, 4, 3, 5, 2, 6, 3, 6, 4, 6, 3, 5, 3, 7, 4, 5, 3, 2, 3, 2, 3, 7, 4, 5, 4, 7, 2, 7, 7, 5, 6, 3, 4, 3, 5, 7, 4, 4, 6, 4, 4, 5, 3, 3, 2, 4, 5, 4, 4, 7, 4, 3, 4, 5, 2, 3, 4, 3, 7, 2, 6, 3, 2, 5, 6, 3, 7, 5, 4, 2, 3, 5, 4, 5, 4, 3, 6, 3, 2, 4, 3, 2, 3, 3, 4, 2, 3, 10, 4, 4, 6, 5, 5, 2, 3, 2, 7, 5, 6, 5, 5, 2, 2, 3, 2, 4, 6, 4, 4, 7, 3, 5, 5, 4, 5, 3, 3, 4, 6, 6, 3, 4, 3, 6, 6, 2, 8, 3, 3, 5, 3, 5, 4, 7, 3, 6, 9, 8, 3, 5, 3, 8, 4, 4, 2, 5, 3, 6, 4, 5, 9, 4, 4, 3, 7, 3, 3, 3, 5, 5, 5, 3, 3, 5, 4, 4, 6, 4, 2, 3, 6, 3, 4, 6, 2, 2, 6, 7, 3, 3, 2, 3, 4, 4, 3, 4, 5, 4, 3, 3, 7, 2, 3, 6, 5, 5, 5, 5, 5, 3, 3, 4, 3, 6, 3, 2, 3, 5, 3, 5, 6, 3, 4, 4, 2, 3, 3, 4, 5, 3, 5, 3, 3, 2, 4, 5, 4, 4, 5, 4, 6, 6, 4, 5, 2, 4, 2, 2, 2, 4, 4, 2, 7, 3, 7, 4, 3, 3, 2, 7, 4, 5, 4, 3, 5, 4, 3, 7, 3, 5, 2, 6, 7, 3, 4, 4, 3, 5, 2, 3, 2, 3, 7, 5, 3, 2, 4, 4, 3, 5, 4, 5, 4, 2, 4, 7, 5, 6, 2, 3, 5, 2, 3, 5, 5, 7, 2, 7, 5, 6, 5, 7, 3, 3, 2, 6, 4, 3, 9, 8, 2, 2, 4, 5, 3, 6, 5, 2, 7, 9, 3, 2, 2, 2, 3, 5, 3, 4, 3, 3, 5, 6, 4, 9, 5, 4, 4, 3, 6, 2, 4, 4, 3, 7, 6, 3, 3, 5, 6, 6, 7, 4, 5, 3, 3, 5, 4, 3, 3, 6, 5, 5, 5, 3, 2, 9, 4, 2, 2, 3, 6, 2, 2, 4, 5, 5, 6, 6, 6, 3, 5, 8, 5, 8, 7, 5, 4, 4, 3, 7, 6, 2, 5, 4, 4, 3, 4, 5, 3, 7, 7, 3, 4, 8, 3, 2, 7, 4, 2, 5, 7, 3, 3, 3, 2, 8, 3, 4, 4, 3, 5, 3, 3, 2, 3, 6, 6, 7, 10, 6, 3, 6, 3, 4, 2, 4, 3, 5, 3, 4, 3, 5, 4, 2, 5, 3, 3, 3, 6, 4, 6, 4, 6, 7, 8, 3, 4, 3, 5, 6, 7, 4, 4, 2, 2, 3, 3, 3, 6, 5, 7, 2, 4, 3, 6, 3, 5, 6, 3, 5, 6, 2, 4, 7, 4, 2, 8, 3, 8, 3, 2, 4, 7, 4, 3, 3, 5, 4, 6, 2, 4, 2, 4, 4, 5, 7, 3, 6, 9, 5, 5, 4, 7, 2, 2, 7, 5, 8, 3, 4, 2, 5, 7, 7, 4, 5, 4, 3, 2, 5, 2, 5, 7, 5, 2, 5, 8, 3, 3, 3, 8, 5, 2, 4, 4, 6, 3, 4, 2, 2, 4, 5, 2, 4, 2, 4, 2, 4, 4, 6, 4, 5, 5, 7, 5, 4, 7, 2, 5, 3, 2, 5, 4, 3, 2, 2, 8, 3, 4, 5, 3, 3, 4, 5, 6, 4, 2, 3, 3, 5, 2, 7, 3, 2, 4, 4, 4, 4, 2, 2, 3, 2, 3, 2, 4, 5, 4, 4, 5, 3, 5, 6, 5, 5, 5, 5, 4, 2, 3, 2, 8, 3, 5, 5, 8, 3, 4, 4, 7, 3, 3, 3, 3, 4, 2, 4, 4, 7, 6, 4, 3, 7, 6, 5, 2, 5, 4, 4, 2, 2, 7, 2, 3, 7, 2, 2, 5, 4, 2, 5, 9, 4, 2, 3, 3, 2, 8, 3, 4, 3, 6, 4, 6, 2, 4, 8, 6, 3, 7, 4, 3, 4, 3, 2, 3, 5, 5, 5, 3, 5, 3, 5, 7, 5, 4, 3, 4, 4, 4, 3, 5, 4, 3, 3, 3, 8, 8, 3, 7, 4, 6, 5, 4, 3, 3, 6, 7, 3, 2, 4, 2, 4, 7, 5, 5, 2, 4, 4, 4, 4, 3, 8, 2, 2, 3, 2, 5, 2, 7, 7, 3, 4, 7, 3, 6, 3, 4, 2, 3, 2, 5, 3, 10, 4, 4, 3, 6, 6, 7, 3, 3, 2, 3, 7, 4, 3, 4, 3, 5, 5, 2, 4, 5, 3, 6, 4, 3, 6, 4, 8, 4, 5, 3, 5, 3, 6, 8, 8, 2, 2, 2, 4, 2, 4, 5, 2, 3, 4, 4, 3, 4, 2, 7, 3, 3, 4, 3, 3, 4, 3, 4, 2, 3, 3, 4, 3, 4, 4, 8, 4, 4, 5, 5, 5, 6, 4, 4, 4, 3, 7, 3, 3, 2, 3, 3, 4, 7, 4, 2, 4, 3, 5, 4, 4, 4, 4, 3, 10, 5, 4, 3, 2, 4, 6, 4, 2, 3, 3, 5, 2, 5, 4, 7, 2, 4, 7, 3, 6, 4, 5, 3, 3, 6, 7, 3, 4, 4, 3, 4, 6, 7, 5, 6, 3, 3, 2, 8, 7, 3, 4, 3, 2, 8, 5, 6, 6, 4, 7, 4, 4, 8, 5, 7, 9, 2, 3, 7, 3, 3, 7, 4, 4, 3, 2, 7, 4, 4, 8, 5, 4, 5, 2, 6, 7, 5, 2, 4, 4, 2, 2, 6, 2, 5, 5, 4, 6, 6, 3, 4, 3, 3, 8, 3, 3, 4, 5, 4, 5, 7, 4, 4, 5, 2, 3, 4, 4, 4, 5, 2, 4, 5, 6, 3, 2, 4, 5, 5, 3, 4, 3, 7, 2, 6, 8, 3, 9, 5, 6, 5, 3, 6, 6, 3, 5, 4, 2, 2, 1, 3, 3, 6, 3, 4, 4, 3, 3, 5, 4, 4, 3, 3, 3, 6, 8, 7, 6, 7, 3, 5, 3, 4, 5, 3, 2, 2, 4, 5, 2, 2, 4, 3, 5, 2, 4, 3, 4, 8, 4, 3, 4, 4, 5, 8, 2, 3, 5, 4, 6, 5, 4, 8, 4, 7, 4, 6, 7, 4, 6, 7, 5, 8, 2, 8, 5, 3, 2, 6, 5, 2, 5, 3, 4, 2, 4, 3, 5, 8, 4, 7, 3, 2, 4, 3, 6, 4, 4, 5, 9, 4, 4, 2, 2, 10, 3, 4, 3, 3, 6, 3, 3, 4, 2, 5, 7, 2, 5, 2, 2, 3, 2, 6, 5, 4, 7, 5, 2, 4, 7, 3, 3, 2, 5, 4, 4, 5, 2, 8, 6, 4, 5, 3, 5, 5, 6, 3, 3, 5, 2, 3, 3, 4, 5, 5, 4, 5, 3, 3, 2, 2, 5, 8, 2, 3, 5, 4, 2, 7, 3, 3, 2, 4, 5, 7, 4, 4, 3, 8, 3, 6, 4, 7, 8, 3, 2, 3, 3, 5, 2, 3, 7, 3, 3, 8, 4, 7, 3, 2, 3, 5, 3, 4, 3, 2, 5, 4, 4, 6, 6, 2, 3, 3, 3, 4, 3, 2, 3, 4, 4, 3, 6, 4, 5, 4, 5, 4, 3, 5, 6, 7, 3, 6, 5, 3, 3, 4, 7, 2, 5, 4, 3, 4, 8, 3, 4, 5, 5, 3, 4, 3, 3, 5, 6, 3, 3, 3, 4, 3, 4, 3, 4, 3, 7, 5, 3, 4, 5, 4, 7, 3, 5, 2, 7, 4, 7, 8, 3, 2, 5, 5, 5, 5, 4, 4, 8, 2, 4, 3, 10, 4, 7, 2, 3, 6, 2, 2, 6, 2, 3, 4, 6, 4, 6, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 9, 4, 3, 7, 5, 5, 4, 2, 7, 6, 3, 4, 3, 4, 4, 3, 6, 4, 5, 3, 6, 5, 5, 3, 2, 4, 3, 6, 4, 2, 2, 3, 2, 9, 7, 5, 4, 4, 5, 8, 3, 7, 3, 6, 7, 8, 7, 4, 2, 5, 2, 4, 6, 3, 7, 6, 6, 5, 2, 2, 4, 3, 7, 6, 6, 7, 2, 5, 8, 3, 2, 3, 3, 10, 3, 4, 5, 8, 5, 5, 6, 5, 7, 6, 3, 6, 6, 3, 8, 4, 7, 3, 3, 4, 5, 6, 2, 3, 3, 4, 5, 4, 4, 3, 2, 5, 3, 4, 5, 7, 7, 5, 8, 9, 2, 6, 6, 6, 6, 3, 2, 2, 3, 3, 4, 3, 4, 6, 8, 5, 5, 5, 6, 4, 9, 2, 2, 3, 6, 8, 6, 3, 3, 7, 2, 6, 4, 4, 4, 3, 7, 3, 5, 3, 3, 2, 3, 4, 4, 2, 4, 6, 5, 3, 2, 5, 3, 5, 9, 2, 3, 2, 4, 7, 4, 7, 4, 4, 5, 4, 5, 5, 6, 3, 3, 3, 5, 3, 4, 2, 6, 4, 7, 5, 6, 4, 3, 4, 6, 5, 4, 2, 3, 2, 5, 4, 3, 7, 5, 4, 3, 3, 6, 6, 4, 4, 3, 2, 3, 4, 2, 7, 7, 4, 3, 3, 4, 5, 4, 4, 7, 2, 7, 3, 6, 2, 3, 7, 8, 3, 4, 3, 8, 4, 6, 4, 3, 5, 5, 9, 2, 3, 2, 5, 5, 5, 4, 3, 3, 5, 2, 7, 3, 3, 5, 4, 6, 8, 4, 4, 8, 4, 2, 2, 5, 4, 2, 5, 4, 3, 6, 4, 3, 6, 3, 4, 2, 8, 4, 4, 6, 4, 3, 4, 4, 8, 3, 5, 5, 5, 6, 3, 5, 2, 3, 7, 6, 6, 4, 3, 7, 5, 6, 3, 9, 5, 4, 2, 2, 5, 4, 4, 5, 4, 3, 5, 5, 4, 5, 3, 2, 3, 2, 2, 2, 3, 5, 4, 2, 8, 5, 4, 3, 5, 3, 3, 6, 2, 2, 4, 6, 4, 3, 3, 4, 4, 4, 2, 3, 4, 6, 5, 2, 4, 2, 2, 10, 2, 2, 7, 5, 4, 4, 4, 2, 4, 6, 4, 3, 4, 4, 5, 2, 2, 4, 3, 6, 4, 6, 3, 5, 4, 3, 4, 4, 5, 2, 9, 6, 3, 6, 5, 6, 6, 2, 3, 6, 3, 3, 3, 4, 4, 3, 2, 4, 8, 3, 5, 3, 2, 7, 3, 6, 6, 3, 4, 5, 3, 2, 5, 4, 4, 4, 3, 4, 6, 4, 8, 9, 5, 4, 4, 3, 7, 6, 5, 4, 3, 8, 5, 8, 7, 4, 9, 3, 4, 2, 4, 6, 4, 2, 3, 8, 6, 5, 2, 7, 4, 7, 3, 5, 2, 3, 2, 3, 4, 3, 3, 6, 3, 5, 8, 4, 2, 7, 5, 2, 2, 3, 5, 3, 4, 5, 4, 3, 4, 8, 7, 7, 3, 4, 5, 2, 5, 2, 2, 5, 4, 6, 2, 6, 5, 4, 3, 4, 5, 3, 2, 7, 3, 5, 8, 3, 6, 5, 9, 3, 4, 4, 5, 4, 7, 7, 4, 6, 3, 6, 3, 3, 4, 4, 4, 3, 4, 5, 5, 5, 2, 9, 4, 5, 7, 6, 3, 4, 4, 6, 5, 3, 2, 10, 6, 3, 4, 8, 8, 2, 4, 6, 4, 2, 3, 4, 2, 6, 3, 7, 7, 5, 10, 3, 6, 5, 5, 3, 4, 7, 5, 3, 4, 4, 3, 5, 3, 3, 2, 2, 2, 6, 3, 2, 5, 5, 4, 2, 7, 5, 6, 4, 4, 8, 3, 4, 2, 4, 2, 4, 3, 8, 4, 2, 3, 3, 3, 2, 4, 4, 4, 5, 4, 4, 3, 2, 4, 2, 4, 4, 8, 5, 2, 4, 5, 5, 8, 7, 3, 3, 5, 4, 5, 2, 5, 5, 3, 3, 4, 4, 3, 3, 4, 4, 4, 7, 5, 4, 5, 2, 3, 3, 3, 2, 6, 3, 5, 4, 3, 2, 5, 3, 3, 9, 2, 4, 4, 4, 3, 4, 6, 5, 4, 6, 2, 7, 6, 4, 6, 5, 4, 3, 6, 4, 7, 6, 3, 3, 2, 6, 5, 3, 2, 3, 6, 7, 3, 7, 7, 6, 7, 5, 4, 7, 3, 5, 2, 2, 3, 8, 3, 7, 2, 3, 6, 4, 2, 3, 7, 4, 4, 3, 4, 2, 4, 3, 8, 4, 3, 6, 2, 4, 4, 8, 4, 2, 4, 2, 3, 6, 3, 2, 6, 3, 9, 2, 5, 5, 6, 5, 2, 6, 4, 6, 4, 3, 6, 2, 4, 4, 5, 7, 3, 2, 6, 7, 3, 3, 4, 5, 6, 5, 3, 3, 2, 4, 3, 3, 3, 6, 2, 4, 5, 6, 3, 5, 5, 2, 4, 2, 3, 4, 4, 4, 3, 2, 6, 2, 4, 3, 2, 4, 2, 6, 7, 2, 7, 6, 6, 3, 6, 5, 4, 8, 4, 2, 4, 4, 2, 4, 5, 4, 3, 8, 4, 4, 5, 6, 3, 5, 2, 3, 4, 2, 6, 7, 2, 3, 4, 3, 8, 5, 5, 8, 8, 3, 6, 1, 6, 4, 7, 8, 2, 6, 6, 3, 6, 6, 5, 4, 3, 4, 2, 3, 3, 2, 3, 2, 2, 7, 2, 5, 4, 5, 6, 4, 4, 4, 7, 6, 6, 2, 3, 5, 4, 4, 7, 3, 3, 3, 3, 3, 4, 2, 2, 3, 8, 2, 10, 3, 2, 7, 4, 4, 6, 5, 4, 2, 3, 7, 7, 8, 4, 2, 2, 8, 2, 3, 4, 2, 6, 8, 2, 2, 3, 3, 3, 3, 5, 4, 5, 3, 3, 4, 3, 3, 2, 6, 7, 7, 7, 7, 3, 3, 3, 2, 2, 3, 4, 3, 3, 3, 6, 2, 4, 6, 6, 8, 5, 9, 8, 4, 8, 2, 4, 6, 3, 2, 2, 5, 4, 3, 5, 4, 4, 3, 5, 3, 4, 2, 6, 6, 6, 5, 3, 4, 4, 3, 3, 2, 6, 8, 6, 5, 2, 4, 5, 2, 3, 8, 5, 2, 3, 3, 4, 4, 5, 3, 5, 4, 5, 3, 3, 4, 2, 7, 4, 4, 3, 5, 5, 7, 5, 5, 5, 2, 6, 3, 7, 2, 2, 2, 9, 4, 2, 4, 5, 3, 2, 4, 2, 4, 5, 4, 2, 4, 3, 3, 6, 5, 3, 4, 4, 3, 4, 3, 4, 4, 4, 2, 3, 6, 3, 8, 2, 3, 3, 7, 5, 3, 5, 2, 5, 5, 4, 3, 3, 5, 7, 6, 3, 4, 2, 4, 5, 2, 6, 2, 3, 3, 5, 2, 6, 6, 3, 3, 4, 4, 6, 4, 6, 3, 2, 6, 4, 7, 2, 3, 7, 3, 4, 3, 5, 3, 5, 3, 4, 7, 3, 3, 3, 3, 3, 9, 6, 5, 5, 3, 4, 8, 4, 4, 5, 6, 2, 3, 3, 3, 4, 2, 4, 4, 4, 7, 4, 2, 2, 6, 4, 9, 2, 4, 7, 4, 2, 9, 4, 4, 2, 2, 3, 3, 4, 5, 5, 2, 3, 2, 5, 4, 4, 3, 5, 5, 3, 4, 5, 4, 3, 3, 2, 5, 4, 6, 3, 3, 4, 4, 3, 7, 3, 3, 3, 4, 6, 3, 3, 2, 3, 4, 4, 6, 6, 6, 4, 8, 6, 3, 4, 3, 2, 6, 4, 3, 8, 2, 2, 3, 6, 3, 3, 5, 2, 4, 3, 2, 2, 4, 2, 6, 3, 3, 2, 4, 3, 3, 6, 7, 5, 2, 8, 3, 3, 3, 4, 2, 2, 9, 4, 2, 2, 3, 5, 4, 3, 4, 3, 6, 4, 5, 3, 10, 4, 3, 3, 4, 3, 3, 4, 6, 2, 3, 2, 3, 7, 4, 6, 4, 4, 4, 7, 2, 3, 3, 3, 2, 4, 4, 2, 4, 5, 3, 3, 4, 4, 4, 2, 4, 2, 7, 5, 3, 6, 4, 2, 4, 4, 3, 6, 5, 4, 7, 3, 4, 3, 3, 4, 3, 2, 2, 5, 2, 2, 2, 2, 5, 2, 3, 3, 2, 2, 4, 7, 4, 4, 3, 4, 3, 3, 2, 5, 3, 3, 7, 3, 4, 2, 4, 7, 2, 6, 3, 6, 5, 3, 2, 4, 7, 6, 5, 4, 4, 3, 3, 4, 3, 6, 2, 6, 4, 6, 5, 2, 3, 10, 6, 6, 6, 5, 3, 3, 6, 3, 5, 2, 5, 4, 3, 7, 6, 5, 3, 4, 4, 4, 5, 5, 2, 4, 5, 4, 3, 3, 7, 5, 4, 3, 4, 3, 9, 2, 2, 5, 7, 7, 6, 6, 2, 2, 2, 6, 3, 3, 5, 7, 4, 5, 3, 2, 4, 3, 2, 2, 6, 3, 2, 5, 7, 2, 3, 2, 3, 2, 8, 5, 5, 5, 3, 3, 3, 6, 3, 9, 4, 5, 6, 7, 4, 4, 6, 4, 4, 6, 2, 2, 3, 4, 7, 4, 4, 4, 4, 6, 2, 3, 6, 4, 4, 2, 4, 8, 3, 5, 4, 4, 3, 3, 6, 5, 2, 4, 2, 4, 3, 3, 7, 5, 4, 3, 6, 4, 4, 4, 5, 2, 3, 2, 2, 3, 5, 2, 3, 2, 3, 6, 3, 5, 3, 4, 4, 4, 4, 3, 3, 2, 6, 7, 3, 4, 5, 5, 4, 4, 5, 2, 2, 4, 7, 6, 5, 4, 2, 2, 4, 3, 2, 6, 2, 9, 4, 7, 4, 6, 4, 3, 7, 3, 6, 3, 6, 4, 7, 5, 4, 2, 2, 4, 6, 4, 5, 5, 5, 5, 5, 3, 3, 3, 6, 6, 8, 7, 3, 7, 6, 7, 3, 4, 5, 3, 3, 8, 2, 5, 2, 3, 8, 4, 6, 7, 5, 4, 7, 5, 6, 4, 5, 7, 6, 5, 9, 5, 2, 3, 5, 2, 4, 7, 3, 5, 3, 4, 2, 3, 2, 3, 6, 5, 3, 10, 8, 3, 5, 3, 2, 5, 5, 2, 6, 3, 4, 5, 5, 11, 2, 6, 2, 7, 4, 4, 3, 7, 3, 7, 10, 5, 7, 7, 3, 7, 3, 3, 4, 3, 3, 2, 4, 4, 3, 4, 7, 2, 3, 2, 10, 3, 2, 2, 4, 3, 7, 9, 2, 8, 2, 5, 3, 3, 4, 4, 4, 2, 2, 3, 5, 2, 3, 3, 5, 4, 5, 2, 4, 4, 2, 2, 6, 3, 2, 5, 3, 3, 4, 5, 3, 6, 3, 3, 3, 2, 2, 3, 5, 3, 7, 2, 3, 7, 4, 4, 2, 4, 8, 5, 5, 4, 5, 8, 8, 4, 3, 7, 4, 5, 6, 3, 6, 3, 5, 5, 6, 6, 2, 6, 5, 2, 2, 4, 5, 3, 3, 4, 5, 3, 4, 2, 4, 6, 4, 4, 3, 8, 4, 3, 2, 7, 4, 9, 4, 2, 5, 4, 3, 7, 3, 3, 4, 2, 4, 5, 1, 5, 3, 3, 3, 9, 7, 4, 3, 4, 7, 2, 4, 3, 4, 4, 4, 5, 3, 6, 4, 5, 4, 3, 2, 4, 4, 5, 2, 5, 4, 5, 6, 6, 6, 4, 10, 6, 5, 2, 4, 3, 3, 2, 5, 5, 8, 6, 2, 4, 3, 2, 4, 3, 5, 5, 4, 5, 7, 6, 8, 5, 4, 8, 2, 3, 5, 6, 5, 2, 2, 4, 4, 2, 4, 4, 3, 5, 4, 3, 9, 3, 4, 4, 2, 3, 3, 2, 5, 3, 4, 5, 2, 6, 4, 2, 3, 6, 3, 4, 4, 7, 3, 3, 5, 3, 6, 3, 4, 2, 2, 7, 4, 6, 5, 5, 4, 4, 7, 8, 4, 3, 3, 5, 2, 5, 3, 5, 5, 7, 5, 5, 3, 5, 5, 4, 6, 4, 3, 7, 6, 3, 6, 4, 5, 3, 4, 5, 3, 4, 5, 8, 6, 4, 2, 4, 4, 7, 3, 9, 8, 4, 7, 3, 5, 7, 6, 3, 3, 5, 7, 5, 3, 6, 8, 2, 3, 2, 3, 6, 2, 5, 5, 3, 2, 6, 4, 6, 5, 3, 3, 5, 4, 3, 3, 6, 9, 3, 4, 5, 2, 7, 3, 5, 5, 2, 4, 2, 4, 6, 4, 4, 5, 2, 3, 4, 3, 4, 4, 2, 3, 5, 3, 5, 2, 3, 5, 6, 5, 4, 8, 5, 2, 5, 10, 4, 5, 4, 4, 3, 3, 4, 4, 3, 2, 3, 7, 3, 3, 2, 2, 3, 5, 3, 2, 3, 4, 5, 9, 6, 4, 5, 8, 6, 3, 2, 3, 9, 2, 4, 7, 4, 3, 2, 6, 5, 2, 3, 5, 4, 5, 8, 3, 4, 4, 3, 4, 2, 5, 5, 4, 6, 5, 6, 5, 3, 4, 2, 3, 6, 6, 4, 5, 2, 3, 2, 5, 2, 4, 5, 2, 5, 6, 3, 3, 4, 4, 3, 3, 6, 8, 8, 2, 7, 3, 5, 6, 3, 2, 4, 3, 2, 4, 6, 7, 3, 5, 6, 6, 4, 2, 2, 8, 4, 2, 2, 5, 3, 5, 3, 3, 5, 2, 4, 2, 3, 3, 4, 9, 3, 5, 4, 4, 3, 3, 2, 6, 2, 4, 8, 6, 3, 2, 2, 4, 3, 8, 8, 6, 5, 2, 3, 3, 2, 4, 3, 3, 3, 2, 7, 2, 2, 5, 5, 5, 6, 5, 5, 5, 3, 4, 4, 6, 3, 6, 1, 3, 2, 2, 3, 4, 3, 4, 4, 4, 4, 7, 3, 5, 3, 4, 4, 5, 7, 7, 4, 8, 6, 3, 3, 3, 3, 3, 2, 4, 6, 4, 3, 2, 3, 7, 2, 6, 4, 3, 3, 3, 3, 3, 4, 3, 6, 3, 4, 3, 7, 3, 5, 3, 2, 8, 3, 6, 3, 4, 6, 7, 2, 4, 6, 6, 3, 4, 7, 2, 5, 4, 2, 2, 3, 4, 4, 3, 3, 2, 3, 3, 5, 10, 6, 4, 7, 4, 3, 6, 6, 2, 2, 3, 5, 3, 3, 3, 2, 3, 8, 5, 4, 2, 5, 5, 3, 3, 3, 4, 2, 3, 6, 2, 6, 7, 2, 4, 4, 4, 3, 6, 7, 2, 4, 4, 7, 4, 2, 3, 6, 3, 5, 7, 4, 4, 5, 9, 8, 3, 7, 7, 7, 4, 9, 3, 6, 3, 5, 7, 5, 4, 3, 4, 4, 4, 2, 4, 4, 4, 3, 2, 5, 4, 5, 2, 4, 5, 3, 6, 5, 5, 3, 5, 5, 6, 3, 3, 4, 3, 2, 6, 9, 4, 4, 3, 5, 7, 2, 4, 5, 4, 3, 3, 8, 8, 4, 2, 3, 3, 5, 6, 3, 9, 3, 3, 4, 3, 3, 3, 4, 3, 4, 3, 4, 5, 4, 5, 4, 4, 3, 4, 7, 3, 4, 7, 5, 4, 5, 4, 4, 7, 4, 4, 9, 5, 6, 6, 2, 3, 3, 2, 2, 7, 2, 5, 3, 2, 7, 3, 3, 7, 4, 3, 3, 7, 3, 5, 2, 4, 8, 3, 8, 4, 2, 3, 2, 4, 4, 6, 3, 8, 4, 2, 4, 4, 5, 2, 8, 10, 6, 4, 5, 4, 8, 3, 4, 2, 3, 4, 2, 7, 6, 4, 6, 5, 6, 3, 9, 2, 4, 9, 6, 6, 4, 2, 5, 7, 7, 8, 5, 2, 6, 7, 4, 8, 6, 5, 6, 4, 2, 4, 3, 4, 5, 7, 5, 2, 2, 2, 3, 4, 2, 3, 3, 3, 6, 5, 7, 5, 4, 4, 4, 2, 5, 4, 6, 4, 2, 4, 4, 2, 5, 6, 7, 2, 4, 3, 7, 2, 4, 4, 4, 2, 4, 4, 5, 5, 5, 4, 2, 5, 4, 4, 4, 3, 2, 3, 4, 2, 4, 6, 7, 7, 3, 5, 9, 3, 2, 5, 3, 5, 4, 4, 2, 7, 3, 2, 4, 7, 8, 5, 2, 6, 3, 2, 7, 4, 5, 4, 3, 3, 3, 3, 6, 2, 3, 3, 3, 7, 5, 3, 6, 2, 4, 2, 7, 5, 2, 4, 4, 7, 3, 3, 4, 3, 6, 4, 3, 3, 5, 4, 6, 2, 5, 6, 2, 6, 6, 2, 4, 5, 4, 2, 4, 5, 3, 5, 3, 5, 10, 9, 2, 5, 2, 5, 6, 4, 5, 3, 7, 2, 5, 3, 5, 4, 3, 8, 4, 2, 5, 6, 7, 6, 3, 5, 2, 3, 5, 2, 3, 5, 3, 3, 5, 3, 8, 5, 4, 3, 3, 5, 4, 3, 2, 5, 6, 4, 3, 3, 6, 4, 2, 3, 4, 5, 7, 5, 5, 5, 3, 2, 3, 4, 10, 7, 3, 5, 3, 8, 2, 4, 3, 5, 2, 6, 4, 3, 2, 4, 5, 2, 4, 4, 3, 5, 4, 4, 9, 8, 3, 9, 5, 9, 4, 6, 5, 3, 2, 4, 2, 3, 5, 4, 6, 4, 7, 4, 2, 6, 2, 2, 6, 2, 2, 3, 4, 2, 4, 5, 5, 4, 5, 4, 4, 7, 3, 3, 2, 2, 8, 6, 5, 2, 3, 3, 3, 3, 3, 4, 4, 2, 5, 2, 4, 7, 5, 4, 3, 5, 5, 3, 5, 2, 3, 6, 7, 7, 8, 3, 2, 4, 2, 3, 4, 6, 4, 5, 3, 5, 4, 4, 4, 2, 2, 3, 5, 4, 2, 4, 5, 6, 6, 2, 5, 4, 5, 8, 3, 3, 2, 6, 4, 9, 4, 4, 3, 5, 5, 9, 3, 2, 4, 6, 3, 6, 3, 4, 3, 3, 4, 3, 3, 2, 3, 3, 4, 3, 6, 6, 5, 10, 3, 6, 4, 6, 2, 7, 4, 4, 3, 4, 3, 9, 3, 3, 5, 7, 5, 2, 4, 4, 5, 2, 5, 5, 2, 2, 4, 8, 8, 7, 3, 4, 3, 4, 3, 6, 2, 6, 4, 7, 4, 4, 3, 5, 8, 4, 8, 5, 4, 2, 2, 3, 6, 7, 4, 4, 7, 3, 8, 5, 5, 2, 6, 10, 3, 3, 5, 3, 6, 6, 4, 2, 5, 2, 4, 3, 4, 4, 4, 2, 3, 3, 3, 3, 6, 2, 6, 4, 5, 5, 4, 2, 4, 4, 7, 2, 4, 5, 6, 2, 6, 2, 4, 6, 4, 3, 7, 2, 5, 6, 5, 2, 3, 5, 2, 7, 1, 5, 3, 4, 3, 3, 2, 4, 3, 2, 5, 5, 4, 5, 5, 7, 3, 2, 2, 8, 3, 3, 2, 2, 3, 3, 3, 5, 5, 4, 10, 5, 6, 9, 7, 3, 5, 6, 6, 4, 4, 5, 4, 4, 6, 6, 5, 3, 4, 4, 8, 2, 5, 2, 4, 6, 5, 4, 4, 3, 5, 3, 3, 3, 5, 5, 6, 4, 5, 4, 2, 7, 4, 4, 3, 5, 2, 3, 3, 5, 3, 4, 3, 2, 3, 3, 3, 4, 3, 2, 3, 3, 3, 4, 4, 2, 4, 4, 4, 3, 5, 3, 3, 4, 5, 4, 3, 9, 5, 4, 6, 4, 6, 5, 6, 2, 8, 2, 5, 3, 3, 4, 3, 3, 3, 5, 3, 3, 3, 3, 8, 5, 6, 2, 2, 4, 3, 4, 2, 2, 4, 2, 4, 3, 7, 5, 5, 3, 4, 5, 3, 4, 3, 5, 7, 4, 4, 2, 4, 4, 4, 4, 3, 2, 2, 4, 4, 4, 3, 2, 3, 4, 4, 4, 6, 3, 3, 3, 2, 3, 6, 2, 4, 5, 4, 3, 4, 4, 5, 6, 5, 2, 2, 2, 3, 5, 9, 6, 2, 3, 3, 2, 5, 4, 3, 6, 3, 2, 3, 5, 5, 2, 3, 4, 2, 8, 6, 4, 3, 7, 3, 2, 6, 5, 5, 5, 7, 7, 6, 8, 4, 4, 4, 5, 4, 5, 5, 5, 2, 4, 7, 3, 2, 4, 3, 2, 4, 4, 5, 3, 2, 5, 3, 4, 5, 2, 6, 2, 3, 6, 5, 4, 4, 2, 4, 4, 3, 8, 3, 3, 4, 3, 3, 7, 5, 6, 6, 3, 3, 4, 2, 3, 3, 2, 2, 2, 5, 2, 4, 5, 8, 2, 3, 6, 3, 9, 5, 5, 4, 3, 6, 8, 2, 7, 6, 4, 2, 5, 3, 9, 5, 2, 4, 5, 3, 4, 3, 3, 3, 4, 6, 4, 4, 3, 4, 3, 4, 6, 2, 2, 5, 4, 6, 3, 4, 5, 8, 5, 2, 4, 4, 4, 2, 4, 4, 5, 4, 8, 4, 7, 5, 4, 4, 3, 4, 9, 6, 4, 3, 4, 4, 4, 6, 6, 4, 6, 4, 8, 5, 6, 5, 3, 6, 3, 4, 4, 4, 5, 3, 3, 6, 4, 7, 5, 2, 2, 3, 4, 5, 6, 5, 7, 3, 8, 5, 2, 4, 2, 2, 3, 2, 3, 8, 2, 6, 7, 3, 5, 4, 4, 2, 2, 3, 6, 3, 4, 3, 8, 2, 3, 2, 4, 5, 4, 6, 4, 4, 2, 5, 2, 6, 2, 5, 8, 3, 7, 3, 4, 2, 3, 7, 3, 4, 4, 2, 6, 6, 6, 9, 5, 3, 5, 6, 6, 4, 4, 6, 3, 3, 3, 5, 4, 2, 2, 5, 5, 3, 4, 2, 2, 4, 2, 6, 2, 7, 3, 7, 2, 4, 5, 5, 7, 3, 4, 4, 9, 5, 2, 5, 4, 2, 3, 3, 5, 3, 5, 2, 3, 6, 9, 5, 5, 3, 3, 7, 4, 4, 2, 3, 4, 5, 4, 3, 2, 5, 3, 8, 2, 4, 6, 3, 6, 3, 4, 10, 4, 3, 5, 5, 3, 2, 7, 3, 8, 3, 5, 5, 2, 4, 5, 4, 6, 2, 4, 6, 2, 2, 5, 9, 3, 4, 8, 4, 5, 3, 4, 4, 3, 8, 6, 3, 2, 3, 5, 5, 3, 5, 4, 7, 5, 4, 6, 4, 3, 4, 4, 8, 3, 7, 2, 4, 3, 2, 2, 4, 2, 2, 5, 5, 3, 4, 3, 3, 6, 4, 8, 2, 6, 2, 3, 2, 2, 4, 5, 2, 5, 3, 4, 7, 5, 9, 4, 9, 6, 7, 4, 3, 6, 2, 4, 4, 6, 4, 4, 3, 4, 2, 5, 8, 5, 7, 2, 6, 8, 5, 5, 5, 8, 6, 5, 3, 4, 4, 2, 4, 2, 7, 5, 5, 2, 4, 6, 2, 7, 7, 3, 5, 4, 2, 5, 3, 3, 3, 2, 2, 3, 4, 3, 2, 5, 6, 3, 4, 2, 6, 3, 4, 4, 4, 5, 5, 5, 4, 4, 3, 3, 6, 4, 3, 3, 5, 3, 7, 4, 4, 6, 4, 3, 4, 8, 5, 5, 3, 2, 4, 5, 4, 3, 3, 3, 2, 4, 8, 6, 3, 2, 9, 4, 3, 3, 3, 5, 3, 3, 5, 3, 4, 4, 4, 5, 7, 3, 4, 4, 2, 5, 4, 3, 2, 2, 3, 10, 4, 3, 4, 2, 4, 2, 3, 4, 3, 3, 7, 5, 4, 2, 4, 5, 3, 4, 4, 3, 2, 5, 6, 3, 4, 5, 3, 8, 6, 8, 4, 3, 3, 9, 8, 3, 2, 5, 2, 10, 2, 6, 4, 4, 3, 4, 7, 8, 4, 4, 4, 2, 4, 5, 4, 4, 3, 5, 6, 7, 7, 2, 3, 5, 6, 2, 2, 4, 5, 3, 4, 4, 10, 7, 3, 3, 4, 3, 3, 4, 2, 6, 4, 5, 4, 2, 5, 3, 3, 4, 3, 4, 3, 3, 2, 7, 2, 6, 3, 4, 3, 6, 4, 3, 4, 2, 2, 3, 4, 6, 5, 6, 2, 7, 3, 5, 3, 3, 5, 2, 6, 2, 3, 2, 5, 4, 4, 6, 5, 4, 6, 5, 6, 2, 3, 2, 3, 4, 5, 5, 3, 3, 2, 4, 6, 4, 5, 6, 2, 5, 2, 3, 3, 6, 3, 4, 2, 4, 5, 3, 3, 2, 5, 7, 3, 2, 4, 5, 6, 2, 2, 6, 7, 11, 3, 3, 5, 2, 2, 3, 3, 4, 7, 2, 6, 2, 3, 3, 4, 5, 3, 2, 3, 4, 3, 4, 2, 2, 2, 2, 3, 2, 7, 4, 4, 5, 2, 3, 6, 3, 4, 6, 5, 3, 5, 5, 4, 3, 4, 3, 4, 6, 5, 5, 6, 4, 4, 5, 4, 4, 2, 4, 2, 3, 8, 3, 5, 4, 3, 2, 2, 6, 3, 2, 7, 4, 3, 3, 10, 4, 4, 2, 3, 6, 3, 5, 5, 4, 8, 3, 4, 4, 4, 6, 3, 2, 4, 3, 5, 3, 5, 4, 3, 4, 2, 5, 6, 3, 7, 3, 4, 2, 2, 6, 4, 2, 3, 4, 9, 3, 8, 2, 5, 3, 4, 4, 4, 4, 3, 3, 4, 3, 6, 7, 3, 4, 3, 3, 10, 4, 3, 3, 3, 5, 2, 6, 2, 2, 4, 3, 6, 3, 2, 4, 3, 4, 5, 8, 5, 5, 4, 2, 5, 2, 6, 6, 5, 3, 5, 5, 2, 7, 3, 4, 7, 2, 5, 5, 2, 8, 7, 8, 3, 6, 3, 2, 6, 2, 5, 2, 3, 2, 4, 5, 9, 5, 5, 4, 9, 4, 5, 7, 4, 3, 4, 5, 5, 2, 6, 3, 4, 2, 6, 4, 7, 3, 5, 3, 4, 6, 4, 2, 5, 3, 5, 2, 3, 2, 4, 4, 5, 4, 2, 4, 3, 3, 6, 6, 3, 3, 6, 5, 4, 4, 3, 2, 2, 3, 3, 4, 4, 5, 5, 6, 10, 5, 7, 4, 4, 3, 5, 10, 2, 3, 3, 9, 5, 5, 3, 4, 2, 5, 6, 2, 5, 5, 5, 4, 3, 8, 3, 3, 7, 5, 6, 4, 11, 5, 2, 2, 4, 4, 6, 4, 4, 7, 4, 3, 2, 10, 4, 7, 3, 2, 6, 3, 4, 4, 6, 7, 5, 2, 3, 3, 4, 3, 5, 3, 4, 2, 5, 3, 2, 7, 2, 3, 3, 10, 3, 4, 4, 5, 3, 6, 7, 2, 2, 2, 3, 9, 2, 2, 3, 3, 5, 2, 5, 3, 6, 4, 4, 3, 4, 2, 3, 3, 2, 3, 2, 6, 7, 6, 4, 5, 3, 8, 3, 4, 4, 3, 6, 7, 4, 6, 3, 5, 5, 4, 6, 3, 4, 4, 2, 4, 2, 5]

Number of Words in Essays

In [47]:
essay_word_count = []

for a in project_data["essay"] :
    b = len(a.split())
    essay_word_count.append(b)

project_data["essay_word_count"] = essay_word_count
In [48]:
print(essay_word_count)
[285, 225, 184, 285, 281, 417, 253, 275, 449, 172, 233, 410, 239, 349, 303, 275, 280, 268, 290, 298, 404, 265, 263, 290, 276, 194, 305, 281, 262, 211, 330, 375, 242, 184, 256, 293, 401, 231, 401, 267, 276, 251, 405, 175, 305, 478, 172, 168, 443, 389, 292, 448, 280, 195, 370, 167, 230, 237, 301, 254, 185, 231, 275, 283, 224, 277, 182, 158, 218, 300, 243, 255, 350, 177, 204, 250, 212, 187, 332, 297, 279, 209, 191, 238, 392, 195, 185, 188, 275, 340, 351, 316, 233, 389, 195, 219, 301, 217, 222, 186, 367, 332, 368, 293, 175, 226, 186, 283, 405, 254, 226, 333, 452, 255, 244, 294, 245, 384, 234, 482, 227, 202, 191, 223, 294, 248, 428, 272, 340, 246, 245, 225, 317, 224, 215, 368, 250, 372, 353, 367, 171, 427, 379, 293, 166, 404, 254, 235, 210, 248, 368, 195, 159, 324, 200, 250, 307, 244, 314, 283, 304, 408, 166, 190, 218, 213, 193, 412, 291, 204, 251, 310, 334, 363, 236, 271, 260, 221, 305, 176, 398, 273, 408, 153, 281, 184, 192, 239, 205, 261, 169, 205, 239, 357, 216, 278, 318, 428, 216, 348, 244, 241, 233, 219, 387, 459, 234, 412, 259, 366, 294, 273, 246, 475, 233, 190, 315, 277, 248, 216, 374, 279, 377, 265, 304, 211, 218, 188, 180, 382, 228, 276, 310, 390, 239, 286, 246, 177, 240, 369, 334, 276, 205, 346, 390, 351, 236, 224, 386, 252, 381, 453, 375, 376, 266, 323, 466, 327, 274, 244, 426, 249, 398, 195, 329, 265, 229, 326, 468, 244, 227, 357, 347, 207, 150, 275, 348, 315, 439, 432, 381, 242, 345, 346, 309, 316, 238, 259, 452, 308, 351, 137, 163, 226, 380, 202, 263, 250, 201, 217, 271, 273, 320, 291, 243, 320, 294, 256, 265, 255, 291, 342, 210, 167, 185, 256, 220, 370, 212, 312, 308, 158, 352, 195, 252, 336, 168, 247, 317, 218, 181, 450, 351, 400, 257, 346, 382, 212, 298, 236, 304, 380, 289, 449, 245, 268, 222, 368, 453, 377, 340, 229, 296, 316, 266, 275, 154, 243, 208, 166, 392, 378, 330, 395, 410, 282, 288, 230, 441, 245, 201, 183, 213, 210, 320, 220, 357, 333, 417, 269, 389, 335, 224, 377, 268, 236, 233, 142, 345, 151, 298, 220, 218, 327, 336, 372, 251, 271, 213, 181, 182, 352, 355, 134, 202, 288, 246, 345, 439, 195, 290, 211, 315, 191, 439, 428, 178, 431, 158, 443, 171, 341, 252, 407, 171, 217, 235, 292, 243, 335, 451, 295, 206, 193, 192, 214, 253, 365, 267, 202, 387, 397, 310, 255, 201, 150, 368, 290, 161, 268, 350, 302, 193, 200, 382, 462, 156, 353, 383, 271, 191, 214, 155, 207, 447, 427, 431, 382, 186, 356, 275, 180, 305, 445, 200, 256, 300, 119, 358, 318, 301, 373, 240, 227, 356, 171, 353, 352, 312, 193, 251, 500, 303, 238, 172, 270, 257, 281, 193, 215, 351, 211, 394, 212, 242, 209, 180, 336, 247, 228, 335, 177, 465, 254, 251, 173, 359, 269, 166, 240, 288, 429, 347, 201, 254, 354, 410, 238, 303, 408, 368, 305, 240, 306, 201, 270, 278, 305, 249, 242, 317, 255, 291, 184, 442, 399, 353, 197, 499, 304, 366, 164, 251, 478, 369, 415, 399, 476, 207, 312, 162, 352, 270, 290, 228, 209, 361, 388, 283, 206, 441, 234, 240, 250, 250, 222, 290, 375, 315, 359, 328, 244, 408, 159, 434, 308, 213, 216, 194, 242, 333, 208, 375, 253, 244, 461, 236, 392, 203, 395, 471, 206, 176, 262, 295, 381, 335, 334, 224, 221, 224, 171, 270, 353, 235, 203, 336, 265, 249, 266, 336, 218, 312, 371, 289, 208, 232, 419, 180, 145, 224, 210, 190, 312, 302, 183, 208, 314, 227, 345, 211, 215, 364, 217, 215, 403, 269, 205, 416, 166, 348, 503, 244, 199, 185, 277, 245, 295, 166, 369, 242, 446, 293, 209, 258, 453, 204, 282, 188, 244, 304, 312, 243, 191, 239, 264, 383, 210, 266, 436, 390, 299, 254, 225, 314, 346, 255, 383, 220, 300, 387, 205, 265, 248, 261, 272, 295, 325, 458, 446, 310, 380, 201, 272, 187, 257, 172, 284, 267, 274, 256, 233, 217, 321, 294, 139, 381, 311, 152, 300, 235, 347, 406, 244, 320, 157, 176, 234, 271, 284, 290, 288, 440, 389, 359, 249, 315, 274, 344, 152, 396, 142, 283, 319, 432, 383, 250, 212, 202, 294, 246, 166, 203, 237, 271, 218, 258, 189, 163, 235, 196, 203, 372, 400, 228, 398, 236, 446, 197, 226, 280, 244, 334, 335, 340, 298, 259, 200, 459, 265, 254, 480, 219, 386, 296, 433, 366, 225, 417, 315, 254, 267, 178, 377, 263, 252, 316, 274, 197, 215, 485, 243, 278, 252, 249, 246, 167, 306, 231, 223, 252, 330, 330, 282, 449, 238, 344, 217, 300, 286, 427, 361, 293, 284, 175, 322, 182, 179, 256, 273, 399, 230, 345, 216, 247, 233, 184, 230, 379, 159, 290, 263, 262, 304, 203, 346, 336, 311, 160, 195, 236, 350, 324, 277, 368, 221, 361, 205, 225, 326, 323, 376, 283, 386, 263, 221, 448, 191, 282, 333, 303, 328, 298, 169, 336, 265, 253, 292, 282, 179, 311, 314, 283, 252, 348, 404, 288, 346, 183, 193, 356, 230, 250, 398, 368, 420, 208, 405, 334, 173, 447, 237, 340, 400, 285, 188, 317, 200, 235, 257, 370, 252, 327, 190, 289, 193, 235, 250, 221, 271, 268, 271, 209, 227, 248, 325, 245, 405, 187, 165, 296, 220, 368, 427, 331, 212, 326, 292, 333, 161, 422, 246, 375, 272, 402, 438, 231, 329, 296, 280, 350, 214, 191, 186, 291, 239, 340, 171, 328, 204, 350, 426, 174, 286, 162, 243, 346, 180, 360, 245, 193, 294, 223, 429, 316, 460, 197, 313, 299, 363, 212, 248, 406, 379, 294, 368, 213, 334, 209, 212, 187, 189, 198, 222, 268, 428, 339, 274, 177, 367, 317, 311, 190, 174, 212, 209, 330, 428, 284, 297, 296, 438, 287, 295, 400, 289, 194, 180, 246, 180, 328, 174, 153, 428, 284, 231, 307, 337, 203, 204, 213, 231, 286, 239, 370, 300, 315, 167, 324, 331, 335, 314, 155, 280, 248, 318, 344, 329, 233, 280, 253, 140, 263, 248, 398, 330, 298, 192, 252, 260, 191, 227, 217, 365, 338, 489, 171, 327, 258, 394, 167, 420, 348, 248, 190, 306, 236, 443, 435, 194, 308, 310, 379, 158, 186, 298, 200, 268, 215, 161, 454, 227, 269, 279, 259, 256, 359, 341, 337, 144, 168, 235, 191, 289, 265, 358, 221, 207, 266, 157, 248, 229, 308, 342, 155, 339, 309, 159, 174, 381, 269, 229, 204, 398, 428, 313, 413, 152, 213, 222, 207, 339, 307, 308, 254, 238, 181, 428, 438, 283, 272, 336, 288, 254, 269, 204, 312, 310, 241, 256, 217, 187, 248, 364, 277, 238, 246, 268, 210, 341, 225, 309, 273, 241, 196, 217, 330, 284, 336, 290, 189, 278, 200, 163, 248, 328, 200, 214, 303, 245, 294, 334, 467, 206, 218, 239, 323, 308, 356, 304, 228, 267, 227, 442, 171, 212, 277, 245, 139, 140, 325, 154, 421, 136, 352, 174, 151, 254, 461, 254, 287, 285, 311, 274, 195, 286, 422, 254, 312, 152, 382, 149, 342, 369, 203, 318, 392, 416, 292, 358, 207, 263, 371, 290, 465, 454, 246, 224, 241, 305, 257, 273, 206, 294, 185, 285, 233, 373, 174, 317, 460, 219, 240, 349, 299, 350, 273, 299, 277, 310, 345, 142, 215, 374, 316, 273, 361, 211, 324, 304, 338, 318, 254, 393, 227, 240, 288, 336, 329, 217, 232, 295, 292, 252, 432, 261, 214, 259, 235, 230, 371, 339, 448, 301, 237, 299, 220, 440, 336, 318, 190, 366, 250, 287, 402, 392, 413, 135, 433, 177, 473, 212, 235, 232, 174, 285, 272, 333, 315, 202, 236, 298, 272, 332, 182, 428, 217, 424, 286, 264, 341, 242, 192, 211, 237, 228, 320, 375, 267, 383, 373, 244, 135, 354, 296, 243, 262, 217, 403, 154, 196, 142, 206, 215, 167, 209, 240, 160, 468, 369, 197, 224, 320, 161, 172, 334, 379, 213, 232, 335, 210, 304, 194, 330, 269, 324, 447, 326, 337, 271, 413, 258, 178, 233, 387, 300, 210, 427, 303, 198, 326, 289, 330, 278, 392, 404, 405, 141, 269, 265, 178, 333, 344, 437, 221, 317, 334, 175, 227, 314, 275, 329, 175, 172, 261, 233, 263, 340, 361, 308, 235, 304, 394, 329, 300, 353, 283, 163, 314, 362, 184, 201, 258, 297, 265, 225, 218, 281, 250, 395, 372, 312, 207, 419, 235, 256, 231, 400, 179, 225, 241, 224, 297, 207, 197, 318, 232, 444, 343, 264, 263, 203, 277, 147, 228, 320, 433, 199, 213, 229, 240, 254, 210, 348, 343, 466, 388, 314, 455, 363, 319, 436, 285, 339, 285, 260, 198, 270, 316, 348, 435, 371, 247, 196, 330, 173, 268, 371, 391, 394, 326, 270, 331, 307, 397, 260, 179, 368, 295, 276, 275, 273, 255, 146, 385, 310, 199, 275, 171, 289, 257, 326, 280, 301, 179, 402, 360, 320, 142, 207, 199, 440, 370, 225, 265, 188, 461, 284, 292, 207, 386, 219, 245, 359, 232, 205, 384, 325, 227, 255, 365, 225, 392, 382, 278, 209, 309, 215, 285, 304, 355, 387, 161, 280, 164, 177, 199, 315, 391, 444, 245, 416, 382, 174, 214, 227, 433, 272, 234, 258, 205, 472, 292, 235, 284, 225, 235, 262, 228, 247, 417, 299, 332, 224, 207, 182, 355, 234, 212, 279, 283, 204, 359, 288, 401, 199, 245, 471, 356, 303, 216, 207, 382, 352, 248, 424, 384, 240, 184, 317, 374, 434, 252, 229, 354, 248, 268, 247, 268, 370, 217, 205, 456, 293, 180, 255, 422, 382, 317, 349, 285, 150, 241, 206, 215, 295, 206, 262, 357, 311, 198, 206, 190, 393, 212, 273, 252, 180, 335, 387, 313, 304, 233, 166, 143, 284, 440, 155, 276, 151, 381, 246, 215, 329, 171, 344, 263, 210, 223, 183, 212, 208, 229, 288, 317, 325, 285, 256, 195, 234, 207, 270, 277, 246, 265, 241, 315, 215, 326, 198, 247, 386, 237, 231, 240, 173, 357, 278, 374, 313, 178, 377, 385, 348, 327, 248, 200, 182, 244, 415, 336, 170, 314, 212, 311, 410, 353, 189, 300, 192, 204, 179, 389, 382, 348, 393, 454, 282, 308, 383, 388, 194, 264, 200, 248, 267, 312, 172, 158, 182, 221, 267, 235, 208, 189, 261, 192, 339, 405, 377, 377, 293, 198, 391, 322, 223, 390, 204, 213, 307, 235, 247, 283, 251, 269, 292, 185, 279, 269, 219, 367, 244, 283, 390, 228, 252, 184, 235, 238, 333, 219, 333, 240, 212, 297, 220, 224, 336, 209, 325, 288, 323, 267, 180, 331, 447, 274, 254, 202, 299, 192, 245, 288, 261, 299, 201, 292, 179, 292, 226, 214, 201, 200, 212, 214, 196, 197, 355, 182, 221, 198, 208, 213, 239, 190, 241, 385, 310, 285, 201, 397, 445, 206, 227, 188, 299, 182, 296, 275, 229, 182, 207, 373, 209, 238, 199, 294, 281, 326, 203, 338, 188, 186, 346, 339, 181, 460, 227, 346, 197, 247, 321, 191, 295, 262, 198, 210, 194, 236, 445, 185, 213, 235, 182, 215, 186, 194, 193, 292, 260, 276, 397, 191, 443, 280, 257, 363, 242, 273, 226, 279, 264, 380, 182, 319, 189, 183, 214, 381, 353, 219, 195, 264, 267, 447, 335, 355, 180, 182, 267, 186, 230, 249, 209, 208, 243, 372, 297, 403, 232, 244, 219, 235, 190, 189, 363, 262, 372, 227, 198, 350, 386, 203, 236, 191, 397, 262, 267, 317, 199, 197, 190, 280, 418, 231, 331, 273, 295, 190, 220, 261, 271, 201, 240, 188, 439, 256, 345, 223, 390, 302, 196, 326, 260, 318, 236, 261, 197, 357, 331, 274, 402, 285, 348, 229, 298, 214, 183, 196, 341, 255, 207, 200, 447, 182, 181, 330, 500, 243, 342, 220, 189, 191, 230, 231, 392, 182, 339, 211, 217, 264, 202, 308, 398, 193, 218, 255, 419, 192, 325, 199, 277, 290, 235, 213, 259, 179, 219, 181, 197, 310, 272, 253, 195, 299, 208, 336, 291, 256, 294, 222, 215, 248, 350, 302, 311, 234, 262, 194, 257, 211, 228, 179, 196, 238, 305, 271, 208, 220, 262, 244, 269, 251, 491, 290, 335, 219, 181, 311, 340, 200, 252, 297, 342, 311, 218, 182, 279, 200, 360, 184, 185, 214, 183, 282, 189, 268, 344, 249, 338, 183, 233, 279, 408, 256, 275, 228, 336, 208, 249, 202, 180, 223, 439, 252, 227, 203, 195, 186, 190, 212, 202, 178, 198, 211, 205, 331, 201, 464, 203, 316, 235, 228, 191, 193, 386, 188, 219, 261, 208, 329, 288, 225, 181, 350, 192, 354, 201, 205, 261, 231, 267, 181, 184, 186, 258, 261, 299, 351, 287, 326, 231, 191, 318, 379, 237, 309, 195, 257, 184, 291, 268, 195, 194, 186, 234, 303, 188, 316, 368, 257, 338, 271, 301, 198, 371, 300, 227, 276, 291, 291, 217, 291, 192, 194, 242, 263, 184, 205, 228, 193, 333, 206, 202, 257, 192, 484, 294, 219, 494, 342, 217, 316, 396, 192, 391, 193, 207, 193, 313, 252, 241, 249, 337, 358, 185, 237, 216, 238, 304, 186, 325, 184, 274, 229, 229, 207, 291, 261, 422, 248, 296, 190, 385, 275, 247, 271, 189, 229, 219, 195, 356, 198, 226, 417, 235, 248, 219, 332, 366, 387, 231, 186, 301, 254, 183, 183, 188, 244, 180, 225, 375, 341, 192, 236, 225, 210, 226, 185, 194, 199, 192, 225, 266, 198, 191, 219, 200, 264, 215, 266, 209, 287, 215, 292, 222, 210, 187, 180, 193, 189, 217, 384, 192, 249, 228, 198, 362, 301, 183, 215, 221, 226, 188, 294, 236, 315, 206, 383, 316, 237, 279, 201, 189, 184, 228, 293, 284, 292, 221, 266, 205, 367, 271, 429, 323, 248, 185, 196, 244, 249, 219, 207, 198, 198, 339, 249, 207, 223, 222, 354, 233, 219, 281, 220, 244, 337, 224, 205, 292, 224, 181, 193, 287, 396, 351, 218, 250, 211, 274, 499, 198, 379, 195, 283, 185, 327, 193, 179, 258, 187, 369, 190, 219, 265, 197, 183, 185, 226, 286, 314, 197, 306, 195, 308, 247, 306, 286, 256, 233, 359, 250, 225, 298, 255, 280, 205, 340, 213, 313, 227, 268, 193, 182, 364, 232, 259, 214, 181, 233, 188, 185, 181, 240, 242, 324, 240, 183, 320, 314, 209, 248, 328, 191, 284, 231, 281, 226, 219, 264, 228, 392, 181, 397, 226, 305, 384, 183, 254, 236, 197, 251, 198, 308, 177, 194, 256, 185, 223, 385, 323, 262, 203, 217, 309, 187, 220, 223, 209, 275, 310, 184, 390, 201, 212, 258, 235, 324, 289, 238, 210, 487, 259, 184, 238, 282, 248, 206, 322, 236, 185, 264, 226, 186, 186, 200, 208, 250, 259, 186, 305, 256, 196, 346, 188, 422, 211, 443, 197, 219, 246, 217, 219, 201, 324, 221, 216, 206, 345, 263, 409, 201, 205, 265, 205, 270, 229, 236, 265, 413, 296, 211, 377, 363, 227, 277, 212, 263, 311, 194, 242, 262, 329, 241, 312, 197, 218, 237, 207, 297, 182, 233, 225, 287, 353, 197, 191, 273, 199, 201, 257, 254, 263, 267, 359, 189, 414, 221, 180, 186, 228, 195, 239, 197, 290, 200, 184, 276, 349, 199, 196, 247, 194, 256, 276, 185, 212, 182, 225, 178, 232, 250, 301, 250, 283, 313, 209, 255, 413, 225, 319, 271, 222, 350, 195, 380, 202, 223, 187, 271, 243, 379, 264, 178, 454, 237, 419, 193, 214, 286, 221, 325, 196, 181, 219, 349, 373, 205, 207, 191, 317, 277, 192, 296, 274, 223, 239, 188, 186, 205, 206, 179, 188, 310, 197, 180, 208, 223, 269, 246, 205, 187, 234, 218, 305, 224, 233, 249, 206, 265, 268, 186, 180, 259, 291, 182, 207, 228, 265, 194, 267, 179, 288, 397, 195, 210, 450, 203, 221, 203, 256, 184, 310, 202, 305, 180, 180, 321, 200, 221, 227, 311, 261, 211, 241, 235, 472, 260, 429, 261, 349, 312, 295, 223, 205, 192, 247, 185, 262, 211, 229, 205, 226, 244, 193, 289, 183, 199, 197, 225, 208, 234, 314, 179, 180, 271, 251, 255, 271, 186, 246, 222, 252, 233, 181, 231, 219, 289, 247, 424, 181, 187, 196, 209, 245, 206, 212, 324, 195, 197, 206, 198, 275, 196, 238, 245, 228, 289, 232, 241, 294, 206, 235, 186, 238, 344, 323, 196, 208, 197, 184, 322, 229, 209, 342, 294, 187, 245, 357, 357, 196, 294, 329, 215, 352, 320, 252, 201, 274, 418, 294, 239, 194, 215, 312, 202, 197, 398, 199, 367, 213, 203, 191, 281, 195, 184, 224, 302, 183, 199, 239, 300, 265, 192, 213, 291, 181, 205, 243, 184, 209, 430, 196, 409, 248, 316, 255, 183, 181, 238, 217, 328, 178, 257, 261, 217, 258, 206, 243, 299, 356, 451, 263, 184, 246, 292, 395, 293, 237, 181, 208, 189, 259, 183, 251, 196, 220, 196, 273, 310, 318, 315, 212, 227, 291, 197, 278, 293, 252, 212, 208, 182, 227, 191, 191, 187, 187, 183, 184, 179, 212, 215, 223, 496, 325, 245, 204, 211, 190, 365, 205, 276, 309, 268, 213, 222, 408, 181, 257, 240, 317, 184, 351, 243, 281, 219, 335, 228, 184, 250, 313, 379, 327, 372, 286, 235, 326, 280, 332, 223, 229, 224, 358, 224, 328, 210, 393, 335, 188, 254, 238, 314, 185, 207, 396, 229, 302, 281, 218, 321, 393, 253, 193, 394, 256, 196, 266, 237, 268, 183, 213, 215, 295, 200, 193, 201, 284, 221, 313, 183, 322, 188, 195, 193, 291, 364, 187, 367, 418, 295, 190, 208, 219, 212, 241, 211, 312, 201, 179, 210, 179, 277, 217, 183, 255, 212, 213, 358, 196, 217, 197, 240, 205, 276, 211, 185, 202, 311, 344, 266, 365, 210, 269, 226, 270, 289, 303, 190, 341, 232, 204, 340, 192, 239, 255, 252, 207, 258, 215, 201, 259, 235, 415, 198, 205, 411, 211, 223, 287, 233, 198, 209, 181, 297, 219, 195, 212, 192, 205, 190, 215, 319, 303, 179, 252, 208, 189, 222, 226, 194, 283, 233, 283, 207, 274, 321, 204, 181, 188, 209, 328, 210, 316, 188, 183, 196, 339, 183, 217, 179, 383, 350, 202, 276, 322, 202, 276, 228, 269, 253, 258, 176, 308, 257, 212, 221, 205, 220, 229, 216, 317, 246, 310, 183, 201, 432, 190, 183, 186, 236, 203, 292, 265, 358, 254, 352, 195, 209, 191, 185, 189, 278, 325, 184, 321, 274, 179, 305, 304, 197, 218, 187, 281, 288, 317, 237, 415, 275, 389, 393, 295, 186, 361, 204, 316, 321, 334, 263, 190, 189, 231, 208, 229, 309, 205, 303, 307, 234, 211, 259, 200, 268, 283, 277, 307, 213, 271, 273, 196, 213, 248, 277, 277, 246, 295, 478, 222, 184, 196, 251, 183, 305, 298, 411, 250, 182, 252, 293, 206, 285, 223, 195, 211, 182, 188, 288, 206, 194, 201, 237, 183, 214, 195, 220, 274, 292, 231, 363, 223, 224, 215, 219, 186, 228, 209, 188, 315, 253, 237, 256, 214, 206, 225, 242, 455, 234, 182, 206, 206, 208, 181, 196, 349, 338, 219, 484, 226, 252, 193, 180, 273, 268, 220, 341, 215, 205, 335, 231, 187, 316, 206, 215, 187, 228, 242, 184, 204, 281, 207, 180, 236, 327, 251, 181, 237, 208, 324, 228, 187, 411, 199, 178, 249, 470, 335, 182, 187, 184, 236, 187, 434, 198, 315, 242, 287, 192, 190, 300, 224, 237, 262, 318, 188, 210, 245, 303, 340, 377, 211, 219, 227, 361, 229, 343, 260, 332, 264, 283, 235, 216, 496, 236, 294, 274, 295, 370, 321, 181, 194, 210, 188, 206, 196, 367, 243, 360, 260, 182, 188, 247, 287, 197, 193, 215, 305, 207, 311, 253, 308, 271, 196, 190, 208, 209, 284, 296, 369, 225, 250, 204, 208, 247, 250, 303, 337, 229, 321, 254, 346, 194, 256, 290, 246, 188, 264, 206, 214, 234, 198, 191, 205, 197, 248, 274, 186, 401, 255, 223, 262, 195, 208, 323, 298, 212, 217, 209, 259, 476, 250, 277, 230, 242, 438, 312, 263, 190, 189, 235, 308, 194, 263, 292, 308, 188, 403, 298, 197, 187, 300, 256, 189, 241, 256, 202, 311, 207, 308, 184, 245, 190, 190, 190, 490, 204, 202, 190, 208, 206, 188, 263, 202, 296, 268, 304, 214, 306, 207, 226, 246, 256, 258, 178, 267, 322, 193, 361, 204, 333, 204, 223, 218, 215, 251, 197, 242, 357, 241, 193, 190, 346, 429, 194, 358, 208, 314, 217, 318, 269, 287, 188, 230, 315, 257, 251, 183, 208, 187, 245, 199, 186, 247, 241, 251, 277, 283, 207, 275, 292, 191, 206, 269, 182, 414, 202, 341, 245, 242, 251, 238, 256, 281, 241, 187, 245, 183, 271, 205, 248, 233, 209, 194, 272, 344, 239, 243, 219, 231, 205, 193, 226, 181, 201, 186, 202, 265, 196, 274, 191, 376, 264, 205, 187, 204, 211, 221, 198, 230, 372, 231, 272, 326, 212, 334, 186, 351, 232, 186, 188, 205, 190, 255, 186, 192, 191, 246, 247, 254, 203, 191, 226, 238, 241, 204, 327, 256, 219, 328, 180, 333, 180, 273, 250, 185, 263, 250, 248, 193, 250, 319, 199, 250, 412, 214, 287, 330, 222, 186, 284, 278, 225, 292, 183, 199, 189, 284, 204, 228, 245, 182, 441, 229, 197, 288, 268, 246, 219, 202, 202, 231, 179, 210, 202, 251, 186, 204, 202, 185, 259, 211, 263, 386, 262, 197, 225, 281, 194, 370, 253, 202, 198, 197, 329, 213, 461, 239, 198, 369, 224, 270, 227, 258, 278, 316, 282, 263, 428, 205, 205, 206, 218, 203, 208, 309, 251, 185, 270, 225, 189, 232, 365, 315, 496, 221, 250, 223, 297, 207, 187, 185, 194, 296, 269, 223, 333, 188, 353, 195, 280, 215, 205, 287, 314, 258, 195, 184, 293, 283, 191, 312, 262, 185, 210, 264, 208, 233, 258, 189, 249, 210, 279, 302, 331, 195, 331, 221, 277, 201, 351, 252, 198, 186, 209, 245, 189, 209, 238, 309, 199, 231, 197, 354, 187, 240, 194, 317, 298, 360, 243, 372, 240, 185, 309, 191, 380, 471, 186, 250, 367, 343, 289, 259, 297, 191, 374, 202, 359, 380, 265, 180, 190, 286, 248, 327, 201, 249, 198, 201, 387, 256, 223, 275, 219, 250, 198, 292, 195, 187, 273, 289, 288, 200, 204, 241, 184, 186, 203, 218, 193, 230, 201, 351, 202, 234, 250, 335, 358, 188, 184, 216, 347, 245, 249, 186, 276, 205, 255, 199, 195, 271, 238, 225, 216, 278, 197, 247, 242, 241, 197, 194, 194, 212, 227, 317, 232, 233, 184, 228, 235, 286, 222, 206, 191, 194, 188, 205, 261, 243, 201, 200, 202, 292, 383, 257, 320, 209, 399, 320, 241, 259, 241, 360, 183, 202, 340, 344, 194, 367, 286, 305, 221, 246, 440, 207, 209, 248, 206, 205, 191, 419, 205, 182, 443, 465, 192, 188, 287, 197, 182, 185, 202, 312, 290, 287, 411, 240, 191, 180, 278, 189, 198, 270, 251, 182, 235, 291, 332, 184, 192, 182, 215, 252, 293, 196, 373, 187, 234, 222, 278, 237, 346, 202, 274, 180, 188, 182, 320, 295, 317, 201, 186, 237, 252, 272, 387, 206, 218, 261, 218, 473, 189, 185, 388, 188, 202, 195, 238, 190, 279, 293, 219, 305, 266, 190, 319, 211, 351, 233, 207, 263, 294, 215, 247, 196, 244, 228, 290, 307, 336, 207, 222, 316, 385, 215, 317, 203, 241, 418, 193, 298, 194, 238, 230, 304, 364, 315, 349, 249, 293, 415, 302, 213, 376, 227, 351, 182, 190, 211, 274, 220, 362, 264, 261, 244, 330, 242, 259, 452, 384, 186, 270, 451, 276, 251, 198, 239, 189, 224, 190, 295, 315, 215, 265, 344, 184, 350, 235, 257, 378, 207, 328, 229, 208, 310, 203, 230, 242, 207, 189, 343, 360, 242, 391, 414, 344, 181, 275, 249, 259, 181, 186, 266, 316, 334, 290, 290, 245, 194, 191, 251, 189, 339, 244, 309, 190, 193, 248, 237, 298, 213, 233, 191, 196, 383, 266, 180, 378, 192, 206, 379, 192, 234, 210, 257, 181, 397, 202, 228, 195, 281, 216, 237, 182, 345, 372, 265, 280, 332, 361, 180, 255, 192, 194, 200, 212, 257, 324, 238, 187, 276, 272, 238, 295, 186, 187, 275, 274, 224, 202, 230, 279, 200, 191, 213, 223, 199, 181, 216, 199, 179, 207, 192, 223, 218, 367, 239, 236, 235, 200, 185, 181, 276, 269, 200, 249, 323, 179, 202, 203, 219, 211, 222, 178, 273, 377, 227, 216, 234, 292, 179, 325, 289, 243, 183, 255, 335, 307, 241, 184, 190, 253, 407, 342, 217, 193, 247, 186, 309, 291, 474, 191, 338, 201, 253, 321, 330, 201, 200, 436, 275, 203, 297, 212, 225, 365, 268, 190, 216, 295, 186, 181, 238, 188, 208, 282, 240, 229, 225, 193, 417, 271, 337, 375, 299, 290, 218, 206, 188, 232, 203, 299, 178, 324, 203, 197, 325, 390, 240, 186, 228, 199, 186, 225, 233, 226, 339, 186, 316, 252, 190, 186, 265, 275, 211, 308, 216, 211, 223, 452, 229, 217, 188, 185, 183, 281, 277, 445, 223, 202, 192, 193, 204, 240, 215, 238, 231, 189, 242, 201, 207, 240, 225, 182, 234, 187, 221, 322, 242, 232, 196, 277, 196, 214, 218, 257, 203, 357, 274, 217, 226, 260, 302, 267, 300, 223, 206, 335, 268, 191, 214, 203, 202, 253, 323, 248, 189, 241, 313, 260, 295, 337, 379, 316, 202, 218, 220, 205, 189, 200, 199, 298, 224, 200, 278, 330, 189, 372, 243, 179, 215, 247, 215, 206, 354, 203, 251, 223, 255, 183, 278, 180, 313, 203, 322, 276, 206, 454, 191, 253, 228, 212, 336, 240, 245, 217, 342, 189, 187, 219, 240, 337, 208, 301, 225, 193, 313, 240, 338, 198, 210, 188, 192, 235, 177, 217, 223, 308, 417, 304, 327, 281, 187, 238, 232, 200, 192, 372, 246, 238, 191, 320, 193, 320, 298, 197, 444, 286, 293, 178, 233, 191, 247, 197, 272, 229, 206, 262, 313, 201, 288, 216, 319, 256, 369, 188, 224, 209, 222, 215, 294, 344, 301, 373, 195, 240, 239, 217, 199, 182, 190, 393, 266, 252, 230, 202, 273, 240, 328, 266, 186, 188, 198, 267, 390, 199, 289, 293, 191, 194, 286, 231, 184, 218, 231, 301, 204, 202, 337, 194, 202, 193, 243, 293, 289, 463, 206, 314, 270, 301, 382, 289, 182, 201, 313, 325, 248, 229, 190, 310, 238, 282, 183, 317, 207, 367, 183, 266, 204, 233, 185, 206, 292, 230, 299, 243, 269, 265, 198, 179, 330, 231, 237, 229, 241, 230, 220, 232, 189, 257, 308, 253, 203, 396, 309, 227, 228, 200, 375, 198, 184, 290, 416, 221, 265, 311, 239, 222, 220, 198, 248, 181, 340, 211, 191, 374, 213, 250, 346, 235, 218, 296, 202, 341, 259, 254, 213, 198, 185, 184, 197, 241, 334, 228, 220, 225, 182, 315, 256, 253, 187, 375, 179, 215, 269, 224, 292, 237, 243, 203, 182, 182, 182, 269, 306, 247, 180, 178, 266, 239, 304, 243, 209, 344, 231, 185, 298, 201, 333, 421, 419, 228, 491, 200, 248, 223, 434, 257, 206, 231, 263, 218, 227, 188, 199, 211, 285, 245, 374, 204, 227, 308, 186, 232, 183, 279, 264, 251, 235, 260, 204, 275, 434, 217, 305, 188, 426, 193, 265, 209, 188, 352, 244, 297, 279, 426, 184, 187, 185, 350, 181, 230, 440, 183, 243, 195, 288, 215, 199, 191, 285, 181, 204, 206, 302, 189, 315, 216, 241, 223, 301, 231, 305, 185, 395, 227, 221, 235, 243, 254, 179, 296, 181, 202, 196, 274, 213, 333, 353, 205, 297, 244, 178, 178, 233, 188, 213, 247, 183, 212, 397, 223, 245, 179, 431, 243, 192, 330, 180, 223, 206, 296, 230, 301, 182, 231, 195, 303, 212, 305, 282, 268, 240, 385, 350, 232, 215, 187, 348, 208, 260, 249, 190, 215, 183, 188, 342, 188, 283, 185, 189, 343, 321, 399, 241, 315, 278, 181, 188, 246, 360, 427, 218, 339, 305, 288, 455, 230, 351, 394, 191, 214, 192, 204, 409, 345, 194, 196, 262, 199, 241, 254, 318, 223, 227, 188, 280, 247, 243, 191, 297, 211, 182, 202, 184, 297, 246, 181, 253, 249, 379, 183, 289, 254, 279, 212, 203, 242, 211, 233, 278, 179, 335, 189, 251, 226, 338, 367, 220, 210, 198, 204, 222, 195, 209, 218, 363, 296, 221, 194, 385, 188, 313, 370, 218, 211, 242, 337, 190, 210, 203, 297, 366, 200, 304, 225, 211, 199, 311, 189, 194, 188, 212, 430, 193, 417, 381, 225, 293, 231, 209, 300, 367, 192, 291, 262, 311, 225, 258, 296, 179, 207, 285, 199, 197, 215, 305, 178, 307, 269, 216, 239, 205, 192, 252, 323, 188, 254, 338, 181, 273, 236, 317, 275, 184, 380, 195, 180, 425, 356, 263, 229, 364, 297, 350, 199, 327, 182, 203, 207, 254, 207, 317, 321, 191, 368, 309, 193, 239, 232, 206, 182, 298, 197, 197, 298, 191, 391, 190, 189, 196, 190, 217, 363, 217, 230, 360, 188, 382, 237, 178, 313, 182, 238, 225, 187, 189, 354, 185, 402, 253, 265, 288, 343, 179, 257, 244, 409, 206, 201, 236, 256, 313, 247, 183, 253, 487, 298, 281, 231, 261, 311, 213, 185, 303, 236, 238, 213, 368, 183, 252, 231, 271, 407, 210, 315, 239, 182, 348, 208, 372, 203, 288, 467, 211, 236, 217, 304, 318, 179, 461, 304, 230, 196, 298, 432, 217, 203, 217, 179, 462, 415, 345, 302, 196, 374, 179, 272, 197, 219, 279, 239, 211, 281, 208, 212, 197, 199, 200, 205, 187, 282, 415, 358, 272, 296, 242, 442, 239, 202, 209, 215, 486, 387, 361, 266, 205, 184, 391, 447, 272, 180, 207, 207, 237, 228, 210, 193, 231, 208, 180, 310, 235, 347, 180, 357, 222, 246, 376, 261, 283, 347, 408, 219, 422, 243, 369, 190, 280, 214, 366, 186, 189, 203, 198, 204, 267, 189, 208, 227, 312, 196, 221, 225, 207, 307, 222, 187, 325, 254, 199, 212, 217, 179, 314, 206, 191, 221, 354, 183, 293, 251, 340, 219, 198, 192, 196, 302, 278, 196, 176, 178, 233, 265, 188, 315, 314, 217, 186, 335, 320, 240, 426, 180, 221, 199, 216, 482, 276, 189, 244, 222, 217, 186, 199, 380, 230, 356, 289, 301, 193, 205, 184, 260, 196, 340, 183, 302, 266, 252, 213, 403, 392, 213, 189, 184, 192, 271, 349, 263, 225, 265, 228, 208, 260, 205, 202, 272, 318, 187, 244, 298, 262, 187, 195, 360, 191, 309, 224, 317, 257, 181, 226, 224, 339, 206, 321, 179, 242, 315, 288, 237, 208, 221, 377, 196, 295, 288, 219, 216, 204, 219, 177, 290, 482, 195, 226, 194, 210, 353, 266, 200, 263, 280, 294, 193, 194, 201, 358, 297, 388, 328, 199, 190, 214, 196, 179, 183, 211, 298, 183, 298, 187, 234, 187, 234, 447, 226, 182, 204, 225, 219, 291, 298, 244, 245, 189, 185, 203, 243, 253, 340, 313, 194, 335, 221, 198, 182, 356, 221, 251, 382, 248, 264, 294, 370, 221, 246, 188, 222, 183, 184, 260, 202, 451, 358, 188, 245, 231, 179, 381, 328, 421, 330, 210, 204, 193, 247, 261, 353, 390, 197, 253, 181, 270, 199, 182, 210, 282, 226, 258, 201, 260, 236, 186, 289, 222, 478, 181, 298, 336, 222, 438, 271, 199, 190, 243, 194, 255, 285, 199, 315, 222, 200, 276, 232, 307, 180, 203, 262, 199, 187, 230, 311, 232, 327, 223, 345, 394, 236, 251, 263, 215, 347, 220, 431, 266, 263, 183, 320, 325, 227, 338, 259, 300, 199, 227, 213, 183, 324, 225, 198, 196, 195, 197, 183, 196, 196, 410, 191, 273, 200, 284, 339, 224, 217, 184, 301, 309, 193, 304, 213, 205, 488, 214, 407, 230, 275, 194, 391, 193, 293, 202, 204, 241, 263, 462, 217, 286, 290, 350, 385, 254, 191, 231, 298, 201, 300, 286, 298, 282, 191, 216, 192, 201, 349, 194, 226, 350, 366, 187, 247, 181, 234, 185, 228, 184, 286, 371, 197, 190, 210, 189, 468, 194, 205, 280, 331, 283, 271, 201, 186, 364, 345, 221, 181, 193, 293, 181, 267, 213, 320, 217, 263, 270, 199, 180, 211, 203, 271, 238, 361, 401, 440, 217, 200, 222, 233, 180, 242, 197, 188, 204, 226, 182, 195, 190, 197, 205, 480, 250, 325, 299, 182, 202, 220, 195, 178, 216, 220, 204, 230, 212, 241, 269, 381, 334, 272, 230, 318, 191, 224, 346, 249, 304, 358, 313, 238, 189, 217, 195, 287, 274, 277, 300, 211, 217, 209, 267, 274, 214, 287, 296, 292, 224, 311, 187, 181, 320, 187, 193, 182, 274, 276, 387, 186, 180, 319, 188, 188, 189, 224, 349, 288, 286, 197, 383, 395, 198, 265, 225, 277, 305, 410, 228, 206, 177, 301, 263, 260, 208, 255, 292, 370, 264, 324, 198, 190, 237, 269, 205, 193, 223, 296, 217, 291, 276, 237, 177, 183, 267, 228, 388, 380, 216, 232, 218, 399, 187, 241, 297, 306, 278, 411, 271, 259, 370, 432, 188, 215, 282, 246, 193, 356, 319, 278, 280, 359, 193, 218, 224, 360, 419, 256, 392, 314, 223, 219, 362, 199, 273, 241, 261, 196, 336, 223, 262, 196, 359, 268, 282, 395, 459, 223, 348, 255, 185, 243, 329, 203, 215, 214, 197, 297, 348, 357, 198, 249, 354, 218, 275, 365, 189, 194, 187, 346, 187, 408, 240, 195, 329, 200, 220, 295, 184, 212, 346, 255, 243, 179, 183, 328, 293, 190, 254, 196, 183, 342, 244, 185, 207, 199, 195, 179, 187, 273, 412, 354, 201, 306, 251, 182, 184, 277, 195, 490, 311, 206, 179, 246, 212, 268, 215, 295, 387, 231, 195, 199, 185, 209, 199, 340, 292, 207, 452, 195, 181, 184, 223, 317, 238, 187, 374, 255, 263, 202, 194, 341, 177, 237, 313, 265, 278, 245, 196, 218, 475, 190, 206, 369, 231, 187, 293, 213, 181, 347, 263, 179, 180, 303, 214, 302, 342, 485, 237, 213, 256, 203, 264, 225, 200, 214, 178, 181, 283, 308, 263, 386, 228, 201, 202, 247, 334, 247, 325, 252, 309, 231, 344, 186, 298, 206, 188, 230, 202, 247, 295, 240, 207, 212, 195, 217, 314, 228, 236, 359, 337, 277, 254, 235, 233, 196, 188, 327, 193, 203, 321, 211, 258, 206, 237, 285, 218, 225, 316, 217, 289, 210, 218, 224, 260, 230, 191, 298, 378, 468, 297, 214, 189, 211, 270, 207, 211, 210, 221, 434, 211, 459, 260, 276, 280, 208, 234, 219, 196, 328, 323, 307, 228, 194, 207, 244, 329, 216, 379, 180, 411, 179, 355, 390, 270, 255, 372, 216, 251, 212, 178, 339, 357, 189, 204, 379, 253, 384, 323, 255, 328, 230, 186, 335, 275, 249, 235, 183, 190, 363, 178, 261, 185, 190, 333, 198, 221, 298, 191, 270, 192, 488, 198, 459, 219, 240, 202, 361, 242, 201, 267, 204, 253, 217, 208, 208, 339, 222, 206, 261, 289, 275, 269, 346, 369, 201, 236, 260, 239, 250, 228, 388, 241, 223, 223, 208, 205, 298, 238, 211, 260, 194, 178, 259, 177, 207, 206, 373, 226, 281, 191, 212, 231, 404, 272, 253, 223, 218, 258, 461, 179, 184, 217, 329, 191, 228, 191, 345, 187, 317, 316, 200, 201, 210, 264, 197, 214, 216, 229, 194, 192, 364, 196, 190, 399, 235, 213, 347, 268, 203, 239, 290, 364, 288, 197, 200, 333, 326, 244, 218, 455, 468, 196, 218, 222, 284, 185, 185, 297, 196, 197, 342, 321, 273, 257, 266, 387, 248, 196, 255, 333, 184, 318, 207, 377, 288, 203, 326, 249, 280, 304, 243, 208, 189, 323, 244, 198, 374, 202, 189, 392, 219, 339, 217, 255, 194, 185, 203, 233, 284, 220, 202, 311, 287, 259, 245, 209, 213, 256, 211, 261, 356, 210, 195, 283, 391, 184, 231, 264, 253, 287, 210, 306, 205, 180, 252, 189, 377, 180, 382, 199, 179, 243, 359, 193, 258, 334, 212, 342, 186, 461, 249, 203, 224, 184, 341, 314, 228, 299, 218, 222, 216, 265, 336, 184, 184, 386, 243, 262, 201, 191, 195, 267, 185, 306, 423, 234, 186, 417, 384, 207, 456, 187, 191, 214, 252, 305, 238, 191, 418, 195, 289, 358, 264, 373, 267, 202, 440, 202, 239, 277, 225, 284, 230, 279, 189, 302, 183, 403, 305, 186, 337, 227, 258, 203, 392, 243, 270, 333, 278, 185, 235, 364, 195, 438, 221, 182, 291, 306, 221, 296, 303, 265, 250, 212, 208, 200, 224, 237, 379, 257, 226, 381, 335, 240, 296, 229, 275, 202, 213, 216, 427, 324, 196, 199, 204, 392, 397, 240, 184, 192, 336, 224, 268, 198, 238, 179, 237, 330, 192, 182, 242, 300, 208, 267, 361, 215, 244, 410, 296, 216, 240, 240, 293, 230, 297, 188, 209, 331, 200, 202, 181, 416, 208, 304, 222, 341, 381, 335, 199, 191, 305, 185, 305, 245, 182, 197, 177, 240, 241, 186, 227, 228, 187, 254, 260, 252, 328, 238, 324, 196, 201, 199, 309, 200, 487, 338, 260, 182, 204, 202, 318, 177, 209, 195, 209, 212, 201, 320, 258, 220, 414, 196, 316, 292, 213, 334, 180, 220, 239, 272, 206, 186, 340, 240, 239, 372, 266, 393, 201, 331, 184, 255, 258, 217, 335, 325, 259, 344, 353, 297, 188, 253, 291, 365, 183, 238, 264, 299, 204, 198, 180, 262, 329, 304, 206, 218, 205, 236, 326, 270, 270, 221, 206, 266, 223, 276, 193, 196, 286, 196, 378, 222, 214, 209, 456, 185, 191, 213, 487, 263, 195, 189, 196, 263, 181, 239, 196, 364, 214, 240, 220, 260, 282, 283, 263, 214, 281, 203, 186, 195, 198, 367, 215, 254, 240, 182, 192, 180, 216, 381, 215, 325, 197, 284, 362, 289, 214, 199, 326, 185, 234, 222, 416, 260, 248, 236, 220, 236, 189, 181, 300, 196, 297, 186, 208, 234, 356, 191, 209, 292, 418, 304, 190, 218, 289, 187, 199, 216, 236, 281, 230, 226, 258, 196, 246, 355, 181, 399, 186, 197, 302, 224, 183, 269, 188, 207, 194, 192, 243, 428, 243, 213, 266, 185, 184, 252, 183, 239, 397, 199, 192, 240, 209, 205, 231, 191, 483, 268, 187, 290, 180, 284, 461, 219, 224, 200, 231, 184, 221, 254, 422, 224, 316, 196, 252, 325, 179, 191, 432, 494, 309, 285, 224, 244, 184, 206, 199, 225, 301, 305, 339, 245, 224, 218, 261, 337, 293, 184, 313, 210, 185, 234, 229, 273, 273, 295, 236, 199, 190, 188, 207, 210, 461, 221, 234, 445, 400, 367, 249, 208, 240, 182, 256, 276, 246, 278, 183, 258, 230, 306, 228, 249, 307, 234, 377, 231, 222, 351, 187, 215, 204, 201, 210, 186, 215, 297, 375, 209, 290, 189, 272, 260, 251, 202, 260, 236, 201, 216, 195, 186, 303, 211, 181, 381, 283, 181, 245, 184, 180, 194, 183, 367, 251, 207, 234, 282, 396, 194, 186, 302, 291, 294, 255, 199, 187, 287, 197, 422, 479, 259, 347, 198, 376, 266, 209, 333, 225, 280, 179, 353, 257, 256, 333, 254, 232, 210, 320, 376, 388, 200, 242, 240, 241, 275, 216, 360, 225, 254, 326, 196, 260, 220, 197, 359, 282, 218, 297, 180, 260, 352, 189, 322, 308, 217, 420, 205, 204, 195, 247, 209, 186, 300, 245, 318, 211, 189, 233, 217, 236, 238, 233, 277, 191, 216, 238, 319, 221, 184, 432, 226, 181, 295, 213, 190, 393, 226, 240, 206, 205, 233, 263, 228, 222, 342, 367, 335, 199, 192, 220, 197, 242, 192, 237, 271, 188, 325, 225, 205, 255, 230, 284, 186, 212, 180, 377, 185, 231, 245, 408, 198, 298, 195, 208, 186, 214, 305, 321, 215, 197, 180, 221, 305, 182, 219, 232, 198, 182, 403, 299, 186, 375, 226, 190, 269, 340, 193, 268, 185, 302, 380, 221, 417, 208, 332, 212, 232, 345, 240, 233, 268, 195, 191, 197, 239, 185, 190, 211, 314, 298, 307, 292, 243, 316, 199, 187, 314, 282, 192, 184, 189, 220, 262, 210, 343, 209, 393, 280, 294, 391, 189, 371, 299, 194, 259, 233, 196, 243, 222, 191, 255, 395, 276, 332, 193, 259, 198, 203, 296, 180, 188, 256, 192, 265, 305, 272, 239, 219, 269, 259, 245, 190, 184, 241, 236, 235, 239, 206, 210, 221, 306, 213, 256, 319, 316, 381, 203, 201, 356, 186, 278, 300, 259, 226, 317, 376, 365, 250, 191, 229, 239, 350, 214, 222, 193, 222, 242, 283, 310, 313, 192, 335, 380, 195, 335, 211, 191, 286, 199, 365, 226, 186, 201, 220, 198, 305, 243, 308, 285, 223, 201, 302, 282, 412, 378, 228, 203, 243, 221, 234, 211, 195, 184, 461, 238, 257, 273, 209, 236, 203, 214, 282, 233, 369, 187, 235, 304, 191, 250, 184, 411, 310, 188, 300, 223, 237, 185, 313, 262, 195, 213, 264, 220, 223, 300, 278, 183, 373, 206, 179, 205, 190, 260, 211, 187, 339, 229, 307, 217, 190, 239, 216, 222, 196, 257, 400, 200, 196, 346, 371, 236, 363, 187, 184, 196, 234, 186, 357, 303, 280, 443, 209, 298, 179, 275, 215, 200, 191, 391, 181, 191, 253, 272, 189, 222, 183, 201, 288, 235, 442, 226, 181, 459, 280, 347, 282, 237, 285, 230, 206, 194, 213, 377, 179, 219, 190, 231, 213, 215, 191, 258, 329, 405, 195, 282, 183, 375, 260, 342, 190, 231, 219, 215, 183, 264, 237, 277, 248, 409, 234, 319, 207, 197, 295, 253, 184, 298, 294, 284, 321, 263, 349, 267, 225, 248, 360, 188, 185, 196, 284, 284, 319, 206, 344, 189, 335, 245, 233, 186, 219, 329, 238, 312, 204, 320, 219, 213, 242, 273, 333, 403, 251, 334, 343, 366, 318, 225, 245, 280, 271, 466, 255, 267, 217, 194, 189, 267, 229, 188, 188, 299, 208, 346, 183, 412, 191, 209, 243, 224, 203, 212, 326, 227, 181, 239, 348, 488, 297, 307, 334, 183, 198, 191, 228, 188, 198, 417, 266, 234, 260, 190, 249, 181, 271, 200, 225, 179, 293, 382, 185, 182, 180, 325, 196, 211, 238, 203, 344, 361, 293, 387, 226, 325, 271, 200, 417, 181, 224, 197, 233, 237, 251, 240, 312, 232, 202, 207, 348, 198, 231, 247, 217, 299, 223, 229, 255, 198, 207, 220, 202, 206, 214, 199, 183, 403, 180, 218, 332, 270, 227, 186, 323, 241, 255, 237, 224, 204, 230, 383, 206, 196, 241, 383, 283, 195, 229, 225, 241, 186, 194, 225, 230, 312, 276, 194, 211, 215, 328, 269, 237, 205, 215, 212, 250, 189, 301, 241, 217, 221, 187, 184, 192, 211, 198, 256, 189, 423, 286, 203, 274, 214, 323, 233, 389, 231, 327, 212, 245, 212, 319, 286, 417, 254, 184, 193, 295, 204, 337, 231, 282, 247, 223, 274, 294, 241, 305, 266, 188, 354, 304, 189, 252, 259, 275, 240, 212, 178, 217, 210, 313, 426, 201, 238, 212, 422, 180, 237, 200, 241, 198, 191, 239, 196, 234, 489, 281, 189, 285, 355, 491, 292, 216, 181, 252, 277, 439, 198, 362, 186, 220, 383, 282, 188, 197, 336, 256, 241, 423, 275, 365, 317, 194, 275, 366, 252, 197, 183, 249, 255, 208, 371, 234, 185, 194, 268, 238, 229, 208, 334, 184, 184, 342, 215, 280, 246, 313, 443, 186, 322, 218, 269, 221, 209, 207, 408, 193, 196, 236, 214, 218, 227, 201, 193, 252, 224, 199, 191, 471, 251, 291, 239, 372, 342, 269, 248, 205, 280, 188, 293, 203, 204, 428, 192, 315, 185, 186, 214, 283, 357, 304, 227, 280, 250, 299, 236, 215, 273, 270, 184, 187, 224, 206, 274, 375, 181, 451, 240, 424, 256, 241, 227, 388, 199, 183, 276, 194, 255, 386, 221, 356, 205, 191, 374, 197, 220, 185, 301, 192, 248, 211, 200, 221, 222, 276, 250, 197, 209, 329, 249, 220, 187, 197, 206, 210, 246, 212, 220, 229, 301, 198, 231, 195, 373, 223, 182, 193, 315, 200, 183, 283, 279, 218, 244, 207, 211, 326, 283, 181, 194, 277, 256, 267, 181, 318, 261, 427, 310, 214, 238, 193, 242, 211, 275, 357, 203, 231, 196, 198, 278, 221, 191, 416, 265, 218, 213, 281, 244, 357, 251, 190, 238, 265, 360, 417, 245, 196, 216, 211, 188, 216, 252, 221, 260, 327, 275, 216, 293, 202, 262, 259, 268, 343, 188, 335, 188, 212, 339, 285, 306, 273, 194, 214, 334, 327, 398, 218, 191, 205, 185, 236, 227, 277, 195, 228, 184, 198, 250, 407, 289, 197, 207, 191, 236, 221, 435, 292, 327, 248, 195, 331, 307, 413, 217, 282, 294, 210, 215, 176, 199, 291, 310, 332, 254, 242, 227, 179, 191, 257, 308, 232, 267, 323, 233, 365, 229, 200, 206, 318, 183, 184, 181, 188, 188, 193, 232, 354, 212, 284, 189, 217, 414, 190, 291, 215, 201, 183, 211, 231, 369, 293, 192, 184, 230, 351, 183, 186, 287, 231, 374, 216, 216, 208, 216, 322, 214, 308, 233, 311, 190, 204, 187, 202, 252, 497, 248, 235, 207, 198, 191, 201, 198, 269, 191, 208, 264, 195, 216, 240, 334, 261, 271, 188, 251, 311, 420, 255, 190, 284, 193, 188, 363, 211, 180, 368, 332, 320, 223, 217, 295, 378, 184, 190, 182, 227, 321, 251, 274, 199, 182, 287, 229, 213, 216, 259, 209, 194, 221, 215, 192, 179, 189, 207, 266, 245, 244, 193, 360, 203, 365, 207, 203, 352, 199, 203, 195, 230, 223, 180, 375, 246, 211, 215, 244, 231, 213, 220, 258, 205, 289, 202, 182, 194, 179, 300, 229, 496, 218, 353, 226, 248, 218, 185, 181, 382, 284, 206, 185, 349, 396, 210, 268, 180, 214, 245, 219, 208, 368, 181, 195, 462, 187, 326, 246, 379, 185, 377, 250, 183, 242, 275, 184, 292, 293, 363, 394, 194, 190, 300, 312, 191, 269, 338, 435, 320, 188, 187, 208, 180, 193, 400, 193, 251, 186, 213, 191, 220, 264, 244, 193, 207, 238, 319, 191, 185, 322, 228, 209, 218, 411, 220, 430, 371, 182, 288, 481, 200, 181, 262, 242, 245, 350, 293, 277, 228, 239, 182, 216, 207, 380, 315, 187, 187, 230, 180, 181, 184, 310, 251, 202, 254, 183, 219, 310, 193, 214, 179, 191, 276, 186, 349, 299, 239, 304, 286, 206, 186, 180, 305, 196, 187, 257, 235, 184, 241, 345, 262, 227, 245, 197, 196, 181, 184, 247, 239, 186, 181, 232, 256, 209, 193, 283, 284, 184, 196, 284, 195, 180, 348, 207, 189, 200, 273, 196, 198, 223, 249, 488, 184, 228, 338, 204, 190, 285, 249, 483, 199, 194, 241, 232, 207, 194, 195, 249, 304, 213, 442, 260, 282, 206, 325, 255, 229, 186, 186, 205, 395, 269, 206, 204, 367, 328, 223, 194, 259, 306, 179, 349, 192, 300, 277, 251, 313, 313, 221, 254, 331, 190, 312, 261, 206, 340, 267, 222, 222, 296, 198, 343, 184, 244, 197, 197, 200, 360, 305, 211, 259, 219, 191, 298, 237, 205, 194, 289, 388, 215, 246, 194, 327, 291, 298, 191, 239, 184, 255, 221, 202, 187, 295, 182, 273, 198, 190, 297, 200, 216, 224, 188, 200, 328, 193, 221, 263, 341, 180, 224, 240, 262, 203, 192, 219, 268, 196, 245, 318, 233, 222, 203, 272, 215, 267, 240, 356, 300, 182, 267, 240, 197, 184, 243, 255, 254, 223, 252, 276, 404, 180, 230, 184, 279, 458, 210, 446, 200, 259, 264, 195, 280, 291, 205, 220, 215, 196, 223, 233, 197, 336, 195, 200, 254, 421, 224, 420, 284, 259, 305, 206, 272, 315, 191, 204, 225, 261, 216, 279, 199, 311, 186, 183, 205, 200, 365, 196, 249, 179, 325, 265, 309, 240, 272, 209, 241, 244, 223, 247, 246, 200, 194, 189, 304, 254, 362, 200, 209, 313, 187, 398, 210, 236, 392, 253, 185, 404, 317, 388, 309, 285, 214, 315, 215, 307, 260, 215, 192, 193, 301, 223, 185, 223, 234, 268, 180, 186, 282, 197, 310, 179, 201, 353, 185, 348, 215, 293, 358, 191, 197, 231, 226, 217, 266, 257, 206, 256, 214, 251, 234, 191, 325, 261, 286, 208, 229, 180, 406, 293, 202, 203, 201, 180, 284, 186, 199, 193, 377, 246, 340, 236, 283, 408, 243, 399, 270, 188, 347, 275, 296, 289, 245, 184, 199, 210, 234, 340, 210, 195, 308, 202, 240, 370, 187, 189, 445, 365, 200, 310, 221, 185, 375, 221, 249, 248, 275, 216, 229, 181, 212, 233, 244, 209, 207, 204, 203, 284, 195, 184, 194, 185, 384, 196, 339, 327, 201, 225, 201, 270, 308, 425, 197, 289, 188, 280, 230, 232, 274, 206, 258, 292, 221, 208, 179, 195, 217, 263, 308, 210, 208, 258, 464, 206, 273, 269, 346, 198, 269, 195, 187, 185, 281, 243, 280, 205, 403, 251, 218, 449, 382, 351, 200, 224, 286, 273, 241, 184, 286, 179, 284, 200, 187, 207, 245, 263, 192, 201, 292, 248, 184, 254, 218, 221, 199, 288, 220, 349, 251, 198, 248, 293, 214, 421, 282, 254, 243, 218, 194, 197, 323, 411, 227, 199, 350, 223, 290, 234, 191, 235, 238, 269, 285, 246, 324, 192, 287, 202, 213, 185, 188, 188, 339, 446, 218, 434, 249, 313, 242, 250, 281, 292, 210, 262, 292, 196, 186, 291, 438, 413, 208, 388, 284, 213, 245, 196, 202, 213, 316, 214, 181, 292, 322, 358, 220, 356, 185, 207, 227, 261, 324, 318, 273, 183, 288, 302, 268, 182, 182, 212, 223, 204, 233, 209, 246, 181, 216, 193, 189, 417, 241, 205, 206, 186, 252, 192, 276, 241, 198, 279, 211, 205, 203, 246, 355, 179, 313, 212, 273, 273, 326, 234, 295, 301, 214, 230, 223, 179, 283, 336, 322, 305, 280, 183, 355, 191, 367, 192, 274, 223, 384, 259, 227, 341, 380, 214, 273, 288, 262, 216, 211, 263, 314, 275, 228, 188, 196, 198, 291, 181, 350, 293, 227, 219, 283, 196, 261, 204, 199, 262, 191, 190, 295, 203, 377, 257, 331, 193, 178, 177, 341, 323, 260, 224, 253, 196, 273, 266, 186, 245, 268, 184, 226, 225, 278, 212, 228, 198, 208, 234, 298, 203, 189, 184, 297, 308, 203, 401, 235, 180, 234, 207, 188, 250, 334, 194, 348, 217, 228, 286, 373, 200, 183, 180, 298, 193, 469, 202, 195, 388, 208, 241, 225, 191, 191, 294, 288, 264, 395, 367, 192, 299, 325, 335, 210, 206, 250, 264, 204, 189, 295, 324, 237, 264, 224, 218, 188, 251, 295, 214, 196, 286, 204, 214, 242, 220, 342, 435, 319, 428, 198, 246, 288, 225, 178, 278, 204, 433, 238, 219, 290, 194, 200, 267, 264, 237, 190, 287, 199, 189, 214, 287, 266, 200, 250, 208, 434, 235, 204, 191, 184, 384, 297, 183, 344, 188, 334, 184, 230, 178, 216, 181, 257, 182, 184, 195, 181, 264, 390, 198, 354, 315, 321, 238, 216, 182, 288, 283, 187, 201, 305, 232, 237, 239, 248, 194, 389, 215, 230, 186, 195, 326, 412, 287, 301, 400, 190, 246, 294, 267, 200, 316, 203, 221, 238, 285, 204, 286, 187, 210, 182, 225, 290, 215, 261, 216, 388, 273, 207, 204, 252, 239, 182, 209, 361, 243, 247, 180, 222, 214, 328, 256, 409, 348, 221, 185, 213, 207, 315, 291, 427, 441, 206, 276, 377, 179, 238, 179, 380, 192, 269, 352, 331, 394, 340, 225, 345, 301, 197, 471, 203, 421, 236, 219, 235, 262, 192, 268, 364, 295, 227, 197, 203, 246, 313, 184, 269, 332, 253, 194, 233, 245, 210, 215, 312, 185, 369, 262, 214, 194, 269, 361, 397, 234, 182, 223, 227, 236, 350, 222, 206, 285, 190, 287, 236, 355, 371, 178, 238, 342, 199, 337, 282, 266, 417, 271, 277, 208, 304, 222, 301, 214, 236, 279, 191, 233, 205, 230, 192, 221, 186, 322, 302, 332, 352, 273, 224, 198, 250, 374, 264, 309, 298, 409, 405, 337, 215, 192, 181, 259, 271, 197, 291, 351, 231, 227, 362, 229, 241, 198, 187, 373, 203, 233, 244, 241, 209, 242, 271, 265, 218, 318, 279, 253, 227, 240, 324, 312, 263, 304, 292, 485, 237, 294, 288, 219, 194, 238, 362, 317, 219, 447, 227, 339, 315, 278, 199, 242, 200, 443, 230, 228, 373, 289, 245, 202, 417, 243, 390, 294, 211, 291, 201, 319, 319, 202, 184, 220, 244, 183, 242, 177, 193, 227, 247, 312, 365, 199, 233, 460, 282, 303, 314, 396, 224, 279, 198, 237, 223, 222, 330, 251, 323, 338, 193, 275, 427, 440, 196, 278, 422, 328, 177, 193, 237, 207, 187, 269, 177, 237, 221, 346, 184, 195, 281, 204, 197, 220, 209, 196, 457, 277, 207, 235, 329, 277, 254, 187, 184, 238, 299, 342, 181, 193, 192, 195, 208, 320, 194, 183, 239, 227, 185, 200, 236, 405, 261, 204, 224, 268, 289, 189, 216, 210, 290, 239, 490, 213, 191, 179, 190, 185, 202, 189, 196, 245, 181, 248, 188, 219, 233, 309, 243, 306, 234, 296, 240, 183, 184, 396, 287, 214, 217, 273, 194, 211, 289, 409, 250, 372, 214, 190, 288, 215, 209, 380, 201, 412, 194, 248, 244, 203, 204, 293, 196, 192, 181, 453, 390, 328, 213, 285, 198, 210, 205, 240, 204, 364, 262, 197, 201, 287, 364, 189, 191, 214, 236, 240, 239, 210, 283, 194, 356, 187, 195, 241, 292, 199, 251, 201, 271, 198, 203, 178, 235, 179, 298, 319, 182, 440, 360, 205, 219, 337, 249, 185, 432, 218, 251, 185, 290, 204, 271, 183, 193, 232, 277, 233, 298, 192, 336, 375, 259, 191, 229, 356, 277, 246, 330, 286, 242, 287, 234, 250, 205, 203, 418, 215, 186, 181, 188, 289, 334, 204, 221, 209, 197, 218, 294, 207, 187, 211, 180, 390, 189, 247, 335, 225, 197, 231, 284, 235, 245, 210, 227, 232, 209, 210, 261, 205, 251, 210, 227, 281, 240, 195, 436, 182, 195, 182, 216, 216, 214, 385, 295, 256, 331, 400, 186, 236, 237, 266, 320, 243, 183, 180, 297, 201, 476, 229, 279, 276, 224, 308, 342, 320, 399, 207, 226, 235, 331, 329, 193, 210, 215, 180, 402, 290, 194, 197, 189, 218, 283, 179, 290, 211, 448, 202, 182, 291, 217, 465, 180, 215, 186, 255, 191, 226, 193, 225, 228, 206, 177, 316, 211, 280, 354, 203, 281, 250, 336, 205, 223, 238, 199, 318, 245, 272, 261, 487, 246, 367, 339, 214, 369, 322, 281, 296, 196, 196, 223, 326, 210, 316, 231, 279, 245, 212, 287, 480, 275, 318, 312, 267, 309, 198, 385, 293, 383, 368, 224, 270, 226, 186, 189, 374, 191, 291, 247, 336, 432, 252, 258, 262, 415, 250, 192, 335, 219, 196, 416, 247, 384, 364, 289, 352, 260, 186, 313, 256, 182, 386, 225, 268, 224, 390, 273, 306, 447, 296, 278, 258, 330, 376, 193, 200, 309, 222, 206, 319, 249, 235, 383, 283, 270, 296, 280, 380, 268, 181, 235, 253, 184, 464, 321, 210, 193, 460, 190, 355, 251, 318, 253, 312, 287, 199, 238, 286, 228, 225, 181, 223, 208, 242, 289, 488, 212, 188, 312, 256, 186, 282, 360, 330, 180, 188, 484, 223, 240, 355, 276, 277, 195, 276, 212, 182, 251, 416, 206, 349, 273, 268, 323, 371, 218, 224, 186, 191, 273, 307, 189, 343, 324, 193, 331, 402, 351, 298, 210, 246, 250, 216, 434, 191, 437, 366, 295, 189, 371, 185, 230, 328, 198, 189, 198, 380, 179, 200, 202, 356, 326, 283, 270, 253, 323, 267, 340, 235, 183, 293, 297, 306, 268, 198, 232, 226, 323, 267, 221, 218, 192, 483, 220, 322, 185, 293, 277, 217, 193, 198, 308, 439, 388, 262, 190, 215, 195, 304, 327, 387, 404, 197, 302, 240, 189, 373, 292, 383, 181, 229, 207, 361, 204, 439, 197, 233, 313, 292, 187, 210, 381, 378, 222, 304, 436, 288, 228, 216, 184, 308, 203, 192, 251, 275, 184, 215, 340, 210, 327, 333, 219, 379, 219, 283, 217, 268, 370, 178, 239, 360, 282, 254, 297, 383, 179, 239, 239, 236, 214, 202, 231, 265, 238, 190, 184, 189, 220, 247, 199, 220, 335, 366, 213, 185, 214, 181, 268, 279, 235, 303, 368, 259, 219, 320, 322, 224, 204, 498, 207, 193, 207, 397, 267, 291, 197, 219, 378, 317, 229, 246, 261, 301, 241, 307, 315, 232, 251, 231, 244, 217, 328, 186, 315, 196, 222, 457, 201, 216, 217, 347, 219, 302, 181, 426, 188, 255, 289, 264, 245, 217, 277, 185, 208, 320, 447, 275, 194, 223, 354, 253, 253, 290, 268, 283, 273, 217, 231, 285, 237, 189, 269, 223, 386, 194, 384, 318, 429, 204, 289, 315, 243, 359, 215, 355, 188, 203, 197, 288, 343, 217, 290, 184, 191, 432, 201, 186, 186, 198, 244, 257, 205, 236, 406, 197, 228, 232, 470, 467, 219, 362, 356, 187, 220, 308, 304, 228, 314, 186, 249, 300, 243, 244, 208, 229, 396, 228, 210, 204, 304, 370, 427, 226, 189, 243, 274, 182, 356, 194, 317, 188, 274, 258, 191, 211, 288, 258, 186, 246, 195, 297, 207, 189, 206, 212, 191, 341, 196, 239, 252, 258, 309, 354, 273, 247, 227, 215, 180, 252, 189, 355, 188, 312, 285, 302, 295, 242, 239, 251, 236, 221, 264, 443, 345, 324, 200, 376, 178, 243, 218, 221, 312, 194, 350, 286, 193, 366, 191, 415, 197, 337, 263, 179, 194, 277, 324, 306, 203, 311, 333, 183, 194, 314, 253, 186, 222, 212, 279, 198, 178, 312, 225, 256, 196, 234, 289, 260, 184, 308, 195, 377, 301, 220, 283, 264, 205, 347, 220, 270, 193, 211, 196, 292, 366, 314, 306, 255, 204, 375, 259, 369, 353, 229, 195, 189, 308, 238, 477, 201, 250, 311, 289, 294, 310, 290, 214, 275, 252, 258, 180, 300, 336, 205, 289, 291, 337, 267, 372, 201, 244, 343, 223, 366, 217, 273, 299, 293, 197, 254, 196, 285, 226, 313, 191, 234, 276, 278, 343, 265, 204, 292, 188, 375, 365, 236, 298, 372, 196, 220, 383, 264, 255, 315, 202, 194, 201, 187, 310, 215, 320, 194, 279, 211, 211, 217, 372, 253, 285, 291, 295, 297, 188, 203, 206, 191, 276, 259, 232, 230, 363, 238, 278, 213, 367, 207, 286, 223, 209, 195, 318, 197, 280, 182, 326, 216, 394, 197, 205, 182, 196, 190, 186, 255, 201, 453, 296, 290, 192, 206, 221, 223, 209, 201, 220, 209, 261, 203, 371, 373, 315, 196, 288, 256, 187, 210, 272, 191, 187, 227, 299, 212, 180, 304, 275, 329, 201, 181, 252, 226, 448, 191, 192, 225, 185, 183, 206, 256, 273, 250, 188, 238, 205, 197, 249, 240, 234, 253, 406, 321, 201, 195, 247, 365, 238, 278, 277, 242, 201, 313, 189, 300, 246, 306, 213, 298, 180, 292, 257, 317, 294, 295, 221, 222, 346, 291, 204, 352, 329, 292, 243, 307, 180, 231, 217, 193, 393, 186, 350, 179, 381, 436, 255, 262, 265, 346, 190, 254, 231, 322, 244, 486, 194, 224, 274, 209, 248, 192, 185, 229, 297, 349, 405, 230, 183, 252, 241, 206, 271, 407, 369, 197, 300, 200, 353, 227, 185, 282, 276, 337, 182, 244, 205, 251, 323, 348, 327, 265, 367, 229, 272, 309, 215, 273, 218, 233, 188, 408, 195, 336, 194, 287, 201, 302, 354, 239, 225, 193, 293, 229, 321, 294, 197, 261, 321, 208, 211, 255, 267, 261, 278, 203, 197, 339, 350, 221, 253, 254, 291, 245, 210, 288, 205, 190, 244, 202, 277, 181, 442, 197, 205, 259, 335, 321, 269, 235, 224, 268, 262, 339, 205, 222, 238, 234, 250, 270, 238, 324, 366, 254, 302, 278, 351, 204, 213, 266, 187, 206, 260, 241, 186, 204, 243, 185, 183, 232, 241, 202, 253, 201, 183, 225, 224, 186, 356, 192, 227, 235, 388, 207, 282, 260, 197, 264, 391, 249, 495, 236, 342, 215, 340, 324, 271, 252, 216, 191, 184, 186, 255, 250, 242, 251, 215, 275, 207, 236, 312, 251, 330, 261, 349, 199, 247, 291, 275, 191, 232, 248, 207, 407, 443, 186, 296, 207, 306, 342, 264, 179, 220, 269, 316, 381, 181, 381, 255, 309, 308, 255, 230, 250, 440, 224, 419, 185, 188, 222, 433, 182, 210, 316, 250, 273, 237, 238, 182, 186, 274, 261, 230, 399, 390, 208, 232, 450, 206, 221, 215, 240, 210, 399, 307, 366, 277, 241, 331, 189, 285, 412, 340, 307, 205, 403, 354, 380, 352, 301, 191, 305, 260, 201, 305, 232, 348, 195, 245, 259, 261, 318, 245, 201, 258, 194, 282, 216, 233, 181, 193, 329, 233, 210, 217, 239, 213, 343, 312, 202, 262, 309, 191, 222, 229, 284, 229, 226, 465, 229, 176, 208, 310, 387, 316, 214, 196, 232, 365, 213, 331, 211, 194, 316, 327, 376, 323, 191, 349, 196, 201, 184, 242, 385, 252, 281, 189, 464, 216, 340, 302, 263, 387, 280, 189, 294, 338, 375, 252, 236, 338, 187, 432, 295, 230, 218, 187, 229, 185, 279, 182, 229, 228, 249, 224, 239, 198, 202, 247, 282, 212, 200, 493, 208, 382, 253, 315, 371, 340, 248, 298, 228, 268, 191, 373, 338, 236, 419, 200, 221, 239, 196, 312, 249, 232, 308, 314, 235, 367, 297, 221, 202, 190, 211, 184, 276, 230, 306, 378, 358, 179, 275, 227, 179, 348, 207, 186, 306, 226, 190, 367, 203, 238, 411, 241, 218, 259, 448, 268, 253, 191, 350, 248, 207, 232, 343, 347, 367, 213, 345, 199, 199, 306, 209, 257, 194, 187, 208, 204, 284, 301, 302, 417, 190, 243, 367, 247, 185, 290, 285, 243, 210, 211, 216, 233, 307, 338, 386, 216, 195, 294, 192, 222, 334, 270, 236, 249, 343, 449, 295, 334, 210, 278, 181, 216, 195, 189, 392, 250, 200, 213, 195, 196, 330, 423, 241, 272, 231, 275, 183, 208, 257, 189, 459, 218, 268, 182, 193, 205, 179, 218, 317, 200, 345, 207, 305, 187, 251, 197, 397, 337, 312, 281, 218, 295, 212, 190, 309, 305, 309, 245, 201, 180, 458, 195, 297, 306, 289, 189, 472, 380, 190, 396, 215, 300, 186, 283, 381, 413, 185, 333, 194, 201, 221, 378, 192, 243, 312, 323, 194, 228, 205, 208, 221, 194, 253, 188, 331, 409, 213, 246, 313, 409, 316, 326, 183, 313, 215, 217, 360, 252, 446, 180, 191, 278, 278, 228, 214, 410, 257, 185, 473, 226, 281, 220, 265, 235, 228, 204, 235, 257, 243, 189, 178, 303, 390, 276, 468, 279, 297, 398, 191, 201, 325, 210, 208, 402, 260, 237, 313, 352, 237, 213, 334, 314, 320, 216, 334, 267, 426, 301, 245, 202, 266, 193, 213, 271, 229, 336, 220, 329, 194, 291, 235, 220, 264, 313, 336, 211, 243, 285, 203, 250, 293, 417, 189, 250, 187, 346, 218, 235, 249, 252, 426, 261, 249, 367, 390, 199, 210, 192, 190, 240, 361, 429, 373, 326, 188, 399, 291, 198, 276, 218, 328, 229, 186, 238, 198, 349, 327, 362, 200, 214, 224, 207, 181, 279, 359, 204, 403, 207, 186, 313, 230, 249, 349, 192, 376, 233, 205, 202, 349, 219, 305, 256, 208, 320, 322, 295, 195, 183, 179, 389, 211, 332, 320, 214, 273, 196, 204, 213, 256, 197, 197, 188, 192, 330, 179, 303, 320, 204, 255, 271, 281, 347, 273, 309, 235, 203, 223, 182, 399, 421, 229, 239, 315, 193, 183, 219, 217, 211, 452, 203, 309, 312, 253, 262, 232, 273, 196, 263, 187, 343, 256, 363, 330, 350, 214, 301, 212, 202, 466, 183, 206, 289, 187, 284, 189, 222, 181, 275, 278, 286, 209, 333, 217, 305, 195, 231, 288, 323, 318, 346, 202, 218, 182, 218, 214, 325, 199, 390, 367, 235, 206, 335, 200, 244, 198, 286, 221, 335, 332, 248, 266, 181, 236, 371, 357, 238, 208, 203, 182, 366, 300, 420, 317, 319, 229, 225, 306, 217, 279, 236, 201, 491, 314, 207, 197, 188, 191, 433, 299, 358, 357, 363, 489, 463, 447, 280, 270, 183, 253, 273, 212, 312, 317, 242, 311, 285, 197, 208, 357, 199, 419, 236, 205, 297, 190, 218, 207, 233, 212, 236, 257, 256, 186, 218, 262, 190, 204, 330, 208, 196, 286, 304, 202, 301, 226, 231, 209, 241, 311, 190, 240, 202, 399, 266, 224, 215, 307, 241, 219, 297, 288, 283, 334, 188, 423, 246, 245, 200, 266, 187, 190, 277, 205, 387, 181, 370, 199, 195, 316, 242, 187, 220, 377, 235, 426, 179, 251, 346, 207, 295, 435, 313, 194, 238, 441, 221, 187, 202, 210, 297, 198, 293, 203, 191, 216, 268, 278, 268, 293, 252, 195, 273, 205, 289, 310, 368, 407, 187, 333, 262, 212, 378, 379, 425, 206, 226, 193, 216, 183, 183, 311, 204, 431, 234, 422, 312, 205, 214, 316, 224, 198, 266, 196, 217, 204, 254, 209, 225, 204, 200, 187, 203, 341, 256, 210, 391, 191, 190, 193, 269, 211, 330, 206, 307, 275, 217, 239, 381, 252, 316, 256, 311, 290, 323, 396, 235, 490, 297, 198, 374, 206, 206, 227, 187, 190, 196, 294, 285, 423, 409, 189, 273, 339, 212, 196, 304, 210, 215, 260, 193, 414, 268, 190, 251, 267, 263, 250, 272, 266, 197, 296, 193, 186, 205, 329, 235, 323, 423, 201, 354, 335, 279, 195, 327, 220, 323, 296, 317, 240, 211, 273, 278, 217, 297, 215, 284, 332, 304, 211, 251, 211, 228, 341, 297, 182, 303, 206, 190, 284, 197, 202, 283, 229, 280, 218, 264, 414, 209, 269, 294, 199, 258, 208, 391, 319, 298, 419, 244, 250, 200, 495, 280, 231, 220, 265, 216, 194, 276, 187, 181, 207, 334, 194, 192, 195, 220, 343, 226, 273, 180, 359, 348, 253, 278, 379, 243, 343, 277, 189, 332, 224, 189, 187, 203, 257, 278, 300, 249, 294, 282, 281, 295, 308, 312, 199, 281, 325, 265, 325, 429, 320, 237, 226, 326, 206, 182, 213, 226, 201, 225, 261, 186, 205, 284, 272, 262, 419, 280, 186, 268, 349, 226, 260, 337, 214, 322, 236, 277, 283, 315, 196, 385, 181, 234, 251, 341, 252, 207, 264, 289, 337, 254, 198, 312, 290, 195, 180, 246, 285, 334, 296, 251, 258, 222, 301, 202, 227, 332, 334, 305, 195, 244, 204, 191, 224, 209, 310, 243, 233, 231, 395, 294, 190, 237, 317, 253, 294, 271, 191, 280, 371, 190, 264, 221, 283, 213, 261, 225, 263, 273, 209, 274, 252, 286, 260, 247, 217, 191, 237, 199, 209, 288, 238, 304, 233, 178, 294, 252, 219, 210, 204, 199, 221, 283, 299, 342, 252, 200, 308, 303, 189, 316, 235, 350, 198, 377, 188, 221, 228, 223, 237, 282, 261, 404, 230, 185, 198, 451, 272, 237, 184, 255, 224, 208, 402, 286, 237, 211, 246, 275, 186, 389, 263, 177, 235, 272, 253, 232, 424, 270, 360, 258, 243, 408, 208, 271, 286, 321, 322, 206, 327, 224, 281, 186, 218, 200, 269, 179, 270, 220, 188, 381, 210, 225, 240, 190, 191, 182, 255, 212, 201, 194, 263, 204, 190, 187, 327, 218, 207, 225, 288, 436, 196, 197, 233, 187, 421, 299, 452, 377, 487, 335, 192, 250, 194, 353, 193, 214, 273, 215, 249, 357, 404, 348, 216, 428, 180, 350, 210, 218, 247, 207, 194, 283, 179, 266, 389, 242, 220, 264, 247, 204, 265, 264, 190, 190, 187, 190, 256, 192, 230, 327, 185, 189, 197, 289, 284, 187, 199, 209, 398, 281, 346, 244, 203, 189, 239, 180, 384, 325, 291, 190, 402, 199, 236, 281, 329, 190, 271, 249, 200, 319, 374, 188, 181, 391, 251, 268, 244, 299, 206, 217, 288, 267, 272, 182, 405, 291, 252, 230, 193, 186, 257, 215, 232, 203, 300, 190, 259, 257, 190, 207, 267, 241, 284, 257, 191, 229, 230, 370, 227, 230, 240, 243, 277, 297, 228, 283, 179, 215, 480, 200, 298, 177, 270, 320, 192, 416, 258, 444, 201, 306, 369, 198, 188, 371, 283, 309, 234, 224, 184, 301, 252, 188, 232, 231, 187, 299, 191, 258, 286, 249, 197, 186, 341, 183, 212, 258, 297, 212, 328, 299, 308, 271, 217, 303, 257, 205, 270, 340, 405, 238, 216, 235, 177, 179, 224, 208, 203, 239, 379, 196, 494, 239, 214, 218, 340, 212, 399, 390, 237, 323, 388, 224, 347, 308, 285, 284, 345, 247, 301, 239, 294, 291, 224, 387, 191, 185, 207, 234, 222, 273, 189, 432, 336, 182, 179, 184, 235, 188, 181, 336, 278, 353, 375, 243, 192, 287, 477, 210, 271, 274, 262, 193, 322, 256, 232, 185, 268, 201, 228, 195, 254, 187, 241, 194, 189, 267, 256, 312, 324, 275, 202, 182, 248, 231, 219, 209, 180, 266, 185, 192, 324, 255, 295, 233, 307, 201, 221, 192, 235, 302, 281, 282, 179, 211, 197, 201, 234, 248, 249, 186, 231, 435, 213, 217, 405, 191, 184, 306, 212, 198, 219, 314, 198, 250, 325, 198, 204, 370, 216, 194, 281, 224, 272, 208, 183, 204, 229, 288, 329, 231, 330, 256, 226, 291, 444, 325, 252, 200, 204, 319, 262, 260, 373, 292, 183, 379, 182, 399, 260, 348, 372, 209, 365, 233, 264, 249, 220, 191, 209, 209, 182, 282, 220, 179, 190, 339, 216, 231, 269, 247, 370, 335, 209, 232, 250, 217, 212, 223, 352, 441, 199, 249, 239, 219, 268, 370, 410, 216, 182, 234, 193, 407, 367, 308, 327, 249, 411, 288, 253, 227, 431, 210, 283, 229, 202, 186, 267, 189, 369, 242, 353, 196, 227, 204, 267, 358, 214, 319, 222, 311, 466, 296, 297, 269, 199, 296, 225, 248, 189, 258, 243, 301, 214, 196, 363, 389, 285, 230, 333, 303, 382, 196, 252, 354, 191, 358, 194, 209, 178, 259, 341, 242, 372, 231, 185, 238, 337, 180, 231, 283, 209, 313, 345, 263, 421, 356, 214, 231, 290, 288, 193, 206, 221, 220, 181, 314, 349, 288, 445, 240, 481, 205, 349, 256, 258, 361, 398, 184, 193, 222, 209, 347, 221, 262, 181, 292, 198, 374, 364, 348, 331, 285, 375, 229, 181, 287, 443, 236, 202, 331, 239, 314, 357, 303, 237, 279, 250, 185, 321, 377, 349, 348, 295, 325, 243, 284, 300, 186, 209, 187, 274, 182, 266, 330, 284, 199, 220, 233, 238, 266, 247, 284, 245, 215, 263, 269, 213, 243, 282, 247, 263, 420, 200, 235, 320, 183, 347, 202, 278, 277, 365, 213, 212, 337, 224, 231, 205, 179, 311, 243, 318, 214, 308, 196, 210, 275, 429, 262, 293, 247, 264, 388, 189, 372, 398, 191, 221, 202, 473, 448, 285, 297, 215, 262, 326, 273, 494, 199, 216, 267, 487, 202, 198, 312, 305, 181, 388, 224, 238, 287, 198, 183, 388, 242, 242, 281, 243, 351, 310, 196, 213, 206, 215, 315, 389, 215, 298, 271, 208, 307, 191, 204, 213, 338, 201, 183, 207, 214, 305, 290, 400, 184, 281, 219, 208, 247, 365, 227, 196, 207, 336, 399, 186, 240, 179, 241, 193, 255, 321, 275, 249, 285, 185, 325, 394, 251, 275, 192, 188, 293, 278, 245, 186, 192, 281, 268, 193, 354, 296, 203, 216, 191, 293, 197, 316, 213, 195, 266, 189, 239, 497, 213, 186, 195, 198, 265, 218, 186, 253, 224, 197, 259, 248, 198, 379, 223, 314, 202, 223, 236, 315, 258, 385, 191, 267, 332, 326, 252, 389, 209, 186, 243, 199, 249, 229, 310, 199, 250, 201, 322, 181, 224, 275, 256, 211, 217, 182, 489, 242, 192, 188, 337, 207, 356, 201, 197, 433, 287, 380, 385, 369, 229, 208, 390, 231, 271, 192, 221, 269, 247, 186, 335, 321, 303, 221, 197, 191, 190, 197, 191, 237, 348, 186, 262, 295, 260, 272, 425, 235, 296, 292, 233, 246, 302, 209, 200, 221, 229, 187, 291, 413, 205, 193, 345, 241, 408, 200, 405, 270, 327, 189, 248, 348, 213, 376, 314, 229, 195, 264, 303, 215, 304, 264, 328, 219, 197, 257, 296, 355, 219, 314, 192, 419, 212, 470, 303, 218, 183, 324, 231, 468, 265, 206, 212, 190, 220, 247, 399, 187, 313, 308, 270, 182, 192, 316, 214, 189, 207, 215, 272, 276, 212, 402, 198, 267, 205, 250, 205, 334, 210, 181, 208, 227, 258, 295, 181, 454, 242, 265, 395, 308, 187, 232, 204, 336, 232, 188, 272, 396, 217, 266, 322, 304, 230, 190, 189, 238, 201, 190, 192, 190, 223, 204, 335, 199, 197, 358, 202, 182, 386, 220, 275, 295, 220, 245, 308, 203, 201, 275, 201, 181, 359, 236, 258, 203, 299, 301, 429, 211, 294, 253, 215, 234, 186, 292, 222, 210, 217, 245, 196, 212, 195, 207, 240, 472, 218, 294, 200, 367, 181, 187, 303, 258, 195, 190, 200, 191, 265, 391, 236, 299, 245, 456, 378, 183, 339, 181, 188, 252, 240, 251, 300, 227, 413, 195, 257, 329, 234, 216, 259, 211, 208, 234, 329, 285, 280, 288, 244, 193, 209, 193, 189, 193, 263, 196, 230, 215, 218, 227, 194, 179, 195, 449, 228, 201, 193, 209, 216, 265, 335, 267, 272, 205, 259, 292, 238, 228, 443, 227, 221, 319, 243, 230, 192, 347, 197, 257, 367, 332, 206, 196, 487, 274, 257, 264, 311, 289, 184, 188, 196, 260, 268, 207, 329, 184, 260, 232, 210, 456, 237, 357, 300, 210, 299, 223, 188, 199, 330, 199, 188, 263, 322, 217, 306, 220, 189, 283, 259, 272, 198, 183, 213, 187, 244, 323, 205, 250, 266, 238, 328, 205, 455, 285, 181, 294, 210, 347, 410, 207, 240, 201, 232, 405, 455, 347, 265, 211, 351, 200, 273, 267, 260, 237, 210, 209, 180, 192, 193, 215, 235, 200, 317, 367, 241, 216, 215, 445, 246, 340, 270, 242, 231, 218, 493, 240, 191, 329, 223, 191, 189, 209, 376, 258, 478, 246, 207, 256, 223, 176, 375, 191, 221, 191, 252, 277, 220, 283, 456, 263, 294, 201, 388, 246, 369, 216, 358, 263, 200, 231, 230, 309, 199, 197, 216, 211, 196, 240, 194, 235, 262, 272, 241, 294, 240, 182, 190, 192, 209, 231, 203, 295, 184, 278, 183, 338, 419, 288, 202, 196, 460, 199, 226, 180, 257, 390, 327, 239, 303, 302, 252, 235, 223, 246, 475, 370, 439, 256, 203, 312, 296, 350, 374, 252, 305, 219, 179, 329, 256, 183, 333, 390, 188, 226, 219, 372, 241, 252, 483, 337, 199, 207, 272, 205, 320, 331, 227, 197, 245, 309, 399, 390, 211, 187, 213, 216, 394, 184, 188, 233, 246, 263, 326, 197, 335, 187, 234, 305, 228, 221, 236, 218, 181, 258, 227, 321, 195, 320, 355, 318, 314, 266, 184, 431, 203, 205, 208, 187, 208, 273, 461, 253, 183, 285, 191, 206, 356, 192, 231, 483, 189, 364, 231, 226, 194, 204, 219, 271, 249, 368, 192, 246, 180, 341, 190, 342, 184, 324, 270, 193, 200, 230, 193, 204, 394, 305, 252, 279, 287, 187, 183, 187, 283, 275, 199, 263, 367, 350, 187, 476, 373, 247, 243, 292, 209, 219, 255, 410, 421, 223, 302, 212, 210, 215, 338, 268, 322, 185, 227, 493, 231, 375, 230, 435, 220, 301, 181, 194, 221, 298, 314, 193, 254, 378, 293, 197, 229, 293, 339, 202, 234, 222, 371, 261, 206, 302, 201, 319, 254, 236, 257, 337, 288, 280, 324, 188, 196, 259, 255, 239, 192, 239, 435, 261, 236, 207, 287, 207, 219, 202, 234, 230, 323, 181, 305, 190, 232, 454, 260, 196, 232, 201, 259, 334, 225, 266, 188, 217, 183, 264, 200, 260, 272, 247, 197, 256, 233, 196, 207, 207, 184, 242, 242, 194, 313, 361, 223, 253, 180, 305, 209, 345, 178, 196, 218, 288, 203, 281, 430, 254, 381, 325, 255, 221, 359, 217, 253, 326, 431, 214, 273, 217, 278, 249, 203, 437, 249, 232, 362, 215, 195, 257, 236, 206, 204, 189, 257, 189, 318, 203, 235, 208, 345, 327, 228, 369, 202, 191, 201, 245, 304, 252, 198, 191, 326, 305, 193, 419, 270, 265, 269, 216, 277, 195, 217, 278, 390, 329, 190, 287, 193, 286, 267, 290, 185, 189, 188, 247, 351, 425, 278, 230, 198, 303, 295, 293, 236, 202, 184, 220, 193, 234, 191, 365, 194, 196, 210, 220, 199, 240, 357, 193, 268, 185, 209, 241, 270, 343, 253, 191, 241, 285, 314, 216, 184, 212, 319, 223, 277, 187, 204, 325, 181, 224, 278, 451, 273, 243, 195, 232, 192, 221, 214, 240, 316, 367, 184, 189, 230, 248, 237, 186, 388, 211, 196, 217, 418, 278, 199, 191, 267, 350, 313, 314, 184, 179, 259, 328, 194, 415, 185, 181, 214, 205, 236, 234, 193, 261, 247, 277, 322, 260, 300, 357, 237, 411, 312, 237, 223, 292, 289, 251, 241, 182, 419, 185, 185, 306, 182, 358, 370, 269, 298, 207, 293, 228, 253, 337, 218, 279, 188, 214, 246, 194, 257, 216, 211, 267, 343, 330, 192, 203, 184, 324, 198, 190, 206, 406, 312, 206, 238, 189, 366, 321, 202, 227, 202, 339, 222, 183, 193, 301, 378, 222, 241, 268, 340, 300, 212, 369, 363, 192, 181, 232, 188, 179, 223, 214, 225, 282, 373, 474, 292, 336, 197, 365, 328, 196, 332, 223, 186, 239, 219, 180, 253, 220, 386, 201, 203, 235, 275, 255, 306, 192, 193, 198, 188, 308, 184, 360, 319, 245, 190, 251, 260, 240, 243, 461, 218, 219, 228, 187, 189, 281, 261, 183, 191, 357, 310, 186, 185, 354, 179, 352, 239, 251, 190, 262, 250, 325, 244, 285, 201, 335, 267, 263, 305, 212, 359, 192, 237, 394, 309, 197, 200, 180, 193, 309, 226, 183, 269, 302, 252, 184, 333, 350, 327, 236, 403, 186, 280, 182, 182, 327, 192, 187, 180, 194, 189, 231, 383, 250, 432, 293, 328, 205, 272, 310, 224, 198, 211, 299, 233, 208, 208, 198, 259, 246, 213, 185, 254, 200, 208, 358, 245, 202, 275, 205, 221, 225, 216, 209, 202, 198, 271, 291, 283, 207, 331, 274, 339, 236, 247, 471, 370, 211, 232, 259, 236, 383, 188, 180, 382, 275, 253, 223, 217, 277, 195, 261, 191, 442, 222, 229, 262, 203, 196, 200, 311, 187, 320, 201, 203, 294, 186, 214, 260, 396, 192, 220, 384, 185, 410, 210, 178, 247, 282, 302, 197, 403, 178, 228, 276, 380, 190, 208, 429, 180, 464, 201, 207, 180, 298, 315, 238, 235, 438, 327, 264, 193, 226, 436, 237, 186, 223, 282, 263, 178, 324, 307, 385, 207, 190, 306, 263, 245, 206, 250, 190, 268, 240, 224, 387, 263, 320, 291, 376, 233, 179, 207, 238, 213, 211, 405, 369, 299, 238, 297, 274, 238, 296, 254, 319, 298, 242, 302, 201, 330, 340, 327, 191, 359, 345, 206, 188, 243, 277, 329, 189, 488, 191, 206, 254, 241, 373, 179, 270, 197, 228, 221, 306, 288, 218, 351, 316, 286, 204, 190, 286, 209, 301, 233, 310, 285, 212, 226, 354, 318, 240, 190, 216, 275, 416, 184, 390, 192, 360, 203, 197, 343, 273, 180, 197, 267, 360, 182, 281, 437, 246, 399, 442, 246, 242, 380, 232, 196, 187, 319, 195, 251, 219, 202, 243, 241, 261, 279, 217, 180, 207, 286, 297, 200, 295, 362, 333, 318, 193, 375, 380, 193, 193, 462, 186, 274, 294, 379, 211, 318, 189, 324, 287, 188, 220, 211, 259, 240, 200, 183, 208, 225, 222, 360, 195, 183, 219, 229, 315, 202, 364, 294, 203, 353, 250, 460, 285, 234, 312, 272, 180, 316, 333, 235, 199, 226, 193, 185, 449, 184, 389, 205, 344, 306, 199, 350, 354, 225, 208, 231, 203, 187, 256, 250, 313, 327, 212, 185, 224, 279, 256, 371, 293, 244, 253, 323, 198, 316, 228, 249, 272, 443, 257, 316, 201, 185, 381, 282, 241, 339, 294, 225, 196, 240, 259, 222, 288, 199, 199, 210, 422, 242, 211, 198, 333, 199, 312, 271, 442, 224, 245, 264, 327, 190, 403, 228, 179, 399, 244, 251, 223, 274, 312, 301, 211, 263, 221, 195, 261, 423, 390, 276, 365, 275, 312, 192, 388, 243, 195, 250, 309, 177, 433, 219, 185, 230, 308, 179, 217, 196, 309, 285, 290, 189, 309, 249, 214, 228, 274, 182, 200, 184, 210, 192, 299, 382, 218, 266, 232, 261, 186, 228, 270, 276, 298, 364, 232, 244, 200, 312, 190, 351, 192, 222, 198, 283, 348, 201, 299, 331, 238, 196, 277, 279, 211, 283, 190, 234, 388, 324, 366, 289, 260, 241, 344, 188, 308, 204, 214, 260, 236, 248, 180, 395, 242, 187, 210, 491, 304, 207, 246, 199, 297, 183, 224, 244, 190, 187, 337, 258, 188, 391, 257, 261, 291, 261, 188, 199, 235, 305, 249, 236, 238, 338, 232, 455, 297, 248, 394, 295, 189, 191, 275, 223, 222, 211, 287, 280, 229, 260, 187, 235, 205, 255, 195, 192, 184, 183, 212, 373, 247, 200, 206, 193, 195, 332, 303, 195, 196, 244, 237, 190, 201, 221, 496, 210, 254, 265, 214, 215, 184, 282, 392, 218, 332, 290, 318, 230, 347, 287, 180, 210, 188, 182, 234, 197, 244, 213, 452, 295, 340, 197, 193, 215, 178, 332, 203, 200, 312, 295, 267, 195, 199, 190, 191, 269, 201, 199, 295, 359, 200, 225, 241, 256, 193, 203, 208, 280, 190, 198, 183, 354, 348, 200, 322, 276, 208, 195, 215, 221, 240, 192, 202, 192, 238, 216, 211, 246, 225, 243, 199, 364, 399, 307, 294, 373, 266, 182, 376, 186, 215, 355, 219, 215, 243, 248, 326, 226, 293, 189, 233, 307, 310, 363, 292, 249, 217, 206, 265, 394, 443, 337, 259, 478, 225, 273, 452, 350, 242, 267, 284, 230, 207, 271, 296, 181, 201, 208, 183, 184, 227, 242, 229, 231, 276, 265, 214, 186, 185, 189, 295, 248, 279, 275, 217, 209, 327, 198, 260, 224, 185, 240, 201, 220, 207, 194, 203, 257, 185, 403, 347, 206, 213, 292, 276, 201, 219, 180, 230, 190, 216, 187, 266, 225, 402, 178, 286, 215, 344, 366, 290, 379, 293, 341, 255, 313, 234, 361, 202, 297, 181, 245, 242, 387, 296, 469, 189, 182, 314, 283, 244, 340, 205, 400, 193, 249, 299, 183, 288, 252, 216, 192, 214, 243, 224, 258, 221, 207, 401, 271, 355, 399, 258, 179, 266, 193, 260, 250, 337, 347, 214, 193, 249, 277, 189, 183, 212, 204, 347, 300, 331, 243, 418, 186, 306, 194, 262, 343, 188, 193, 287, 409, 214, 183, 211, 185, 182, 244, 189, 387, 322, 190, 252, 346, 210, 251, 204, 238, 353, 212, 224, 404, 268, 286, 185, 389, 194, 458, 193, 193, 189, 285, 253, 192, 222, 184, 179, 323, 265, 251, 310, 312, 186, 204, 196, 446, 391, 281, 248, 253, 228, 285, 309, 201, 204, 259, 210, 214, 252, 259, 186, 190, 279, 220, 380, 202, 204, 240, 259, 212, 288, 304, 191, 279, 262, 237, 242, 179, 365, 232, 211, 205, 447, 222, 200, 274, 301, 379, 289, 226, 253, 198, 198, 244, 268, 197, 187, 286, 279, 297, 316, 269, 238, 333, 180, 205, 243, 234, 187, 373, 191, 237, 193, 282, 231, 278, 366, 280, 484, 197, 214, 327, 436, 230, 414, 195, 338, 203, 295, 274, 182, 214, 369, 199, 354, 206, 212, 255, 219, 306, 217, 257, 219, 265, 242, 248, 262, 190, 190, 311, 289, 263, 274, 435, 263, 234, 193, 210, 209, 188, 292, 435, 251, 194, 307, 238, 234, 388, 225, 263, 236, 193, 246, 230, 180, 203, 178, 427, 226, 211, 196, 180, 442, 185, 229, 381, 392, 191, 244, 375, 441, 265, 364, 196, 251, 214, 268, 201, 218, 323, 236, 235, 207, 234, 191, 250, 301, 277, 207, 358, 209, 195, 324, 182, 219, 263, 367, 352, 466, 324, 349, 407, 279, 259, 184, 236, 406, 290, 184, 330, 290, 194, 267, 194, 218, 207, 301, 199, 303, 366, 190, 197, 184, 393, 464, 185, 281, 278, 188, 231, 221, 209, 370, 191, 273, 245, 215, 271, 335, 229, 268, 200, 358, 185, 257, 432, 263, 234, 196, 187, 348, 182, 336, 354, 181, 221, 184, 223, 296, 197, 207, 310, 235, 240, 338, 207, 273, 289, 306, 278, 224, 259, 266, 220, 270, 322, 194, 360, 474, 205, 228, 234, 183, 302, 487, 232, 247, 232, 379, 180, 209, 370, 193, 313, 296, 235, 278, 306, 228, 225, 366, 327, 436, 185, 292, 277, 213, 246, 294, 187, 299, 235, 181, 239, 230, 262, 257, 186, 181, 204, 235, 183, 330, 180, 209, 309, 196, 251, 217, 217, 210, 255, 256, 202, 244, 274, 211, 215, 197, 180, 209, 206, 277, 301, 415, 190, 244, 220, 285, 185, 203, 376, 206, 308, 189, 182, 219, 304, 185, 180, 226, 233, 404, 183, 195, 272, 304, 221, 233, 272, 224, 287, 207, 334, 333, 222, 251, 221, 218, 188, 192, 201, 206, 276, 380, 209, 189, 200, 260, 437, 217, 284, 431, 222, 196, 288, 209, 309, 186, 217, 305, 306, 252, 287, 196, 310, 199, 310, 265, 495, 182, 253, 247, 248, 248, 193, 203, 189, 219, 415, 282, 364, 210, 213, 182, 344, 235, 399, 189, 285, 203, 194, 257, 288, 207, 345, 202, 479, 214, 199, 273, 198, 203, 277, 201, 295, 288, 188, 197, 251, 401, 211, 182, 191, 250, 312, 189, 206, 245, 214, 236, 275, 242, 187, 202, 180, 293, 227, 214, 195, 189, 212, 261, 227, 269, 375, 297, 260, 222, 433, 204, 194, 195, 215, 190, 233, 210, 181, 236, 252, 230, 353, 326, 347, 232, 223, 309, 251, 268, 222, 380, 229, 194, 224, 193, 268, 337, 212, 200, 216, 419, 185, 242, 328, 352, 300, 262, 212, 193, 189, 203, 211, 185, 197, 208, 184, 332, 296, 205, 299, 183, 184, 274, 248, 264, 178, 178, 255, 347, 184, 403, 234, 319, 225, 231, 313, 294, 248, 274, 192, 260, 420, 192, 200, 254, 235, 201, 283, 348, 213, 188, 209, 245, 203, 267, 241, 219, 264, 188, 352, 377, 322, 323, 345, 247, 240, 180, 247, 263, 306, 275, 202, 385, 190, 193, 251, 296, 253, 388, 400, 237, 179, 264, 210, 215, 185, 181, 180, 425, 264, 225, 318, 248, 188, 189, 398, 355, 203, 400, 239, 203, 223, 258, 197, 350, 306, 282, 220, 264, 189, 446, 301, 275, 390, 307, 189, 284, 236, 186, 302, 301, 252, 201, 235, 275, 250, 348, 192, 213, 195, 192, 407, 215, 187, 239, 477, 193, 184, 258, 288, 241, 179, 223, 202, 201, 215, 237, 217, 290, 184, 205, 195, 224, 260, 224, 298, 292, 231, 195, 205, 214, 208, 203, 318, 223, 323, 181, 184, 327, 181, 217, 269, 202, 216, 216, 191, 319, 212, 218, 212, 223, 281, 233, 187, 186, 200, 270, 193, 192, 185, 222, 201, 245, 248, 221, 243, 195, 191, 353, 434, 184, 211, 252, 280, 279, 327, 307, 256, 187, 214, 287, 295, 265, 236, 185, 269, 224, 475, 185, 333, 224, 184, 223, 289, 274, 240, 342, 394, 212, 180, 188, 201, 428, 217, 199, 239, 222, 208, 210, 220, 341, 360, 182, 297, 288, 196, 221, 180, 245, 244, 192, 217, 205, 251, 268, 231, 200, 343, 191, 273, 214, 253, 312, 210, 298, 242, 214, 253, 314, 187, 206, 260, 199, 189, 212, 378, 227, 245, 224, 201, 211, 205, 193, 306, 183, 250, 237, 207, 235, 273, 333, 310, 262, 289, 346, 354, 198, 240, 236, 311, 183, 213, 189, 202, 258, 305, 292, 198, 231, 182, 325, 185, 382, 257, 247, 250, 200, 246, 335, 218, 394, 244, 204, 295, 218, 239, 209, 215, 299, 238, 259, 213, 181, 247, 214, 284, 191, 200, 212, 237, 326, 215, 228, 271, 193, 327, 205, 202, 234, 196, 211, 361, 187, 243, 235, 187, 180, 244, 247, 222, 183, 189, 251, 192, 337, 387, 274, 185, 203, 196, 214, 204, 295, 295, 219, 252, 212, 201, 213, 413, 407, 227, 229, 252, 216, 265, 396, 231, 222, 239, 469, 185, 239, 179, 245, 248, 194, 245, 181, 293, 194, 268, 244, 212, 180, 204, 269, 229, 377, 193, 241, 187, 229, 408, 254, 247, 290, 274, 190, 266, 222, 191, 317, 203, 260, 344, 287, 206, 193, 280, 257, 352, 248, 326, 311, 346, 364, 213, 189, 419, 211, 187, 237, 211, 204, 248, 199, 238, 351, 223, 364, 312, 343, 192, 292, 186, 215, 271, 209, 369, 377, 185, 178, 348, 256, 222, 389, 182, 306, 233, 197, 178, 209, 196, 376, 327, 235, 190, 230, 280, 262, 183, 298, 191, 349, 264, 226, 210, 192, 180, 210, 179, 201, 218, 216, 241, 250, 217, 222, 289, 305, 195, 330, 261, 187, 307, 238, 288, 181, 290, 194, 194, 201, 243, 258, 184, 211, 231, 422, 227, 244, 195, 280, 253, 194, 180, 184, 287, 183, 264, 329, 351, 305, 238, 246, 221, 217, 305, 274, 211, 205, 189, 496, 206, 261, 259, 244, 281, 386, 318, 218, 205, 234, 194, 317, 334, 304, 217, 195, 214, 179, 189, 181, 227, 375, 208, 217, 196, 180, 186, 182, 201, 193, 200, 341, 255, 198, 278, 293, 201, 408, 201, 201, 239, 270, 257, 316, 242, 224, 204, 406, 181, 348, 391, 198, 266, 198, 227, 316, 285, 231, 218, 200, 226, 182, 214, 251, 188, 259, 420, 220, 220, 266, 293, 206, 278, 416, 181, 188, 282, 181, 217, 215, 217, 283, 180, 199, 209, 184, 276, 424, 197, 365, 330, 211, 205, 281, 267, 229, 297, 366, 224, 187, 179, 186, 195, 196, 289, 391, 212, 178, 219, 248, 267, 268, 187, 182, 187, 182, 211, 327, 240, 389, 219, 199, 194, 284, 185, 208, 183, 183, 399, 217, 256, 202, 216, 222, 226, 379, 214, 401, 190, 296, 426, 188, 226, 291, 188, 303, 291, 247, 203, 208, 247, 216, 235, 325, 266, 182, 281, 236, 254, 241, 311, 254, 222, 273, 251, 271, 185, 204, 192, 279, 210, 203, 190, 219, 236, 227, 207, 264, 324, 226, 316, 203, 216, 212, 301, 261, 284, 195, 203, 241, 322, 230, 197, 198, 196, 479, 208, 187, 253, 433, 249, 197, 227, 228, 203, 221, 284, 186, 221, 269, 183, 227, 183, 230, 231, 298, 308, 206, 380, 263, 227, 391, 259, 277, 193, 284, 211, 198, 297, 377, 202, 182, 195, 182, 193, 220, 241, 224, 202, 242, 185, 202, 261, 331, 236, 235, 347, 418, 200, 250, 184, 278, 278, 194, 250, 392, 313, 207, 269, 197, 183, 392, 181, 353, 183, 299, 268, 194, 192, 205, 354, 181, 394, 221, 284, 189, 341, 191, 286, 309, 246, 214, 237, 358, 297, 274, 259, 245, 264, 289, 198, 229, 198, 265, 258, 191, 264, 277, 268, 369, 246, 205, 253, 199, 270, 246, 205, 219, 194, 244, 282, 189, 322, 288, 197, 224, 194, 247, 277, 320, 205, 188, 231, 349, 227, 185, 196, 182, 182, 232, 190, 215, 320, 277, 206, 179, 437, 194, 199, 190, 200, 291, 340, 189, 193, 229, 193, 412, 334, 378, 219, 198, 322, 226, 197, 223, 201, 233, 299, 370, 207, 196, 196, 382, 182, 260, 212, 177, 184, 246, 185, 211, 240, 236, 189, 361, 420, 258, 305, 293, 481, 231, 280, 189, 242, 222, 221, 202, 178, 189, 313, 290, 384, 210, 281, 250, 331, 392, 376, 254, 250, 229, 191, 271, 211, 211, 468, 232, 214, 181, 185, 267, 372, 213, 190, 208, 182, 243, 246, 192, 308, 187, 272, 245, 240, 473, 248, 191, 178, 205, 229, 340, 375, 232, 283, 260, 194, 267, 270, 309, 213, 280, 179, 186, 217, 203, 296, 433, 268, 204, 229, 175, 198, 367, 179, 368, 306, 239, 224, 278, 201, 261, 253, 219, 183, 212, 217, 189, 274, 305, 209, 385, 379, 195, 262, 304, 394, 280, 255, 336, 217, 253, 222, 245, 196, 187, 273, 194, 227, 354, 221, 253, 385, 192, 192, 204, 241, 191, 195, 300, 351, 222, 263, 187, 218, 262, 238, 199, 336, 434, 302, 300, 217, 297, 230, 239, 199, 289, 328, 217, 210, 325, 187, 180, 253, 186, 192, 185, 258, 179, 350, 194, 207, 222, 202, 278, 195, 247, 467, 280, 218, 189, 258, 301, 353, 225, 382, 188, 221, 241, 267, 248, 248, 229, 299, 216, 291, 195, 231, 420, 237, 229, 238, 304, 184, 334, 374, 244, 329, 292, 233, 277, 290, 217, 205, 224, 257, 202, 415, 303, 334, 223, 245, 184, 226, 197, 290, 251, 221, 374, 235, 177, 219, 180, 187, 230, 199, 239, 238, 178, 260, 349, 332, 322, 198, 261, 181, 319, 183, 187, 275, 302, 312, 229, 210, 237, 179, 225, 314, 278, 195, 231, 255, 195, 218, 255, 312, 197, 193, 193, 211, 265, 382, 178, 324, 280, 219, 182, 203, 279, 239, 180, 251, 179, 303, 288, 203, 318, 185, 304, 306, 270, 196, 179, 193, 278, 190, 378, 228, 206, 244, 191, 186, 312, 340, 468, 312, 218, 393, 192, 181, 287, 193, 187, 238, 265, 227, 275, 196, 209, 240, 211, 204, 203, 283, 318, 198, 245, 175, 369, 184, 197, 206, 188, 191, 255, 186, 183, 254, 203, 206, 259, 309, 190, 254, 257, 469, 235, 351, 310, 183, 327, 270, 228, 242, 324, 196, 220, 185, 357, 358, 247, 307, 293, 219, 214, 247, 242, 187, 268, 192, 184, 351, 312, 232, 232, 222, 317, 482, 196, 190, 258, 224, 275, 224, 260, 306, 253, 196, 370, 400, 191, 191, 255, 187, 335, 197, 180, 314, 191, 323, 337, 227, 211, 182, 257, 193, 339, 370, 187, 266, 212, 221, 235, 381, 190, 350, 321, 200, 244, 201, 246, 216, 230, 186, 321, 298, 276, 304, 189, 211, 320, 282, 233, 194, 402, 178, 297, 178, 268, 212, 240, 203, 284, 182, 293, 190, 188, 300, 308, 200, 223, 242, 378, 408, 250, 215, 183, 308, 405, 221, 279, 280, 247, 228, 267, 195, 315, 205, 192, 272, 354, 195, 260, 375, 206, 206, 286, 255, 330, 224, 231, 303, 180, 205, 285, 188, 295, 239, 258, 189, 211, 385, 429, 245, 416, 251, 217, 242, 206, 346, 221, 217, 232, 211, 324, 406, 203, 260, 184, 193, 260, 216, 300, 398, 253, 316, 195, 179, 227, 184, 201, 227, 199, 367, 258, 254, 246, 259, 216, 375, 208, 234, 319, 280, 493, 232, 211, 450, 286, 221, 388, 229, 208, 320, 424, 317, 227, 198, 189, 341, 262, 379, 265, 197, 267, 191, 261, 378, 211, 210, 380, 285, 303, 181, 215, 369, 221, 270, 324, 207, 254, 190, 256, 411, 205, 378, 439, 184, 225, 191, 275, 187, 253, 357, 277, 186, 236, 321, 185, 235, 293, 215, 420, 201, 186, 287, 208, 226, 385, 184, 202, 206, 247, 233, 242, 196, 221, 245, 314, 463, 182, 318, 220, 204, 189, 263, 445, 254, 187, 200, 249, 248, 219, 286, 243, 419, 196, 230, 210, 377, 197, 199, 403, 190, 309, 206, 236, 388, 186, 229, 296, 433, 286, 253, 248, 268, 264, 239, 290, 217, 266, 203, 326, 257, 267, 347, 299, 266, 208, 279, 272, 241, 475, 234, 294, 188, 277, 279, 364, 322, 232, 248, 245, 190, 202, 222, 349, 276, 367, 446, 255, 243, 222, 186, 192, 303, 278, 296, 345, 291, 299, 236, 230, 396, 255, 283, 245, 203, 182, 282, 337, 305, 259, 305, 308, 307, 357, 276, 365, 217, 198, 232, 236, 270, 218, 261, 259, 230, 398, 457, 229, 195, 197, 183, 266, 199, 197, 192, 336, 202, 283, 207, 220, 442, 179, 195, 272, 233, 381, 202, 220, 309, 310, 276, 185, 197, 226, 260, 187, 374, 212, 330, 258, 297, 263, 226, 274, 208, 351, 212, 211, 282, 288, 270, 366, 196, 273, 198, 191, 334, 189, 207, 216, 250, 208, 467, 264, 205, 371, 281, 329, 214, 202, 213, 253, 181, 355, 225, 200, 251, 208, 345, 218, 388, 206, 258, 228, 291, 304, 258, 189, 187, 325, 234, 195, 400, 314, 200, 196, 262, 179, 196, 252, 195, 193, 210, 291, 250, 273, 196, 378, 226, 197, 194, 234, 208, 219, 259, 280, 208, 183, 178, 294, 303, 228, 223, 338, 240, 210, 239, 283, 339, 185, 250, 199, 259, 198, 276, 278, 193, 220, 181, 194, 191, 222, 365, 254, 226, 256, 288, 300, 244, 347, 279, 225, 249, 297, 220, 246, 285, 346, 227, 252, 457, 258, 217, 286, 236, 203, 211, 296, 340, 297, 225, 331, 193, 183, 197, 431, 211, 206, 248, 354, 199, 181, 342, 248, 278, 447, 304, 194, 189, 277, 204, 209, 325, 244, 373, 369, 219, 278, 217, 189, 385, 188, 200, 194, 210, 227, 425, 292, 196, 197, 187, 306, 459, 301, 335, 210, 188, 334, 185, 236, 216, 229, 317, 186, 375, 227, 193, 233, 240, 230, 268, 254, 193, 299, 386, 316, 280, 190, 283, 246, 195, 344, 305, 222, 273, 182, 363, 242, 183, 231, 307, 211, 193, 220, 260, 190, 235, 244, 231, 208, 289, 286, 407, 352, 441, 216, 283, 424, 238, 220, 310, 257, 246, 199, 260, 295, 206, 301, 188, 265, 186, 283, 187, 238, 207, 204, 191, 214, 201, 233, 201, 400, 228, 239, 198, 180, 195, 180, 245, 267, 225, 189, 194, 376, 217, 303, 189, 234, 180, 255, 264, 236, 190, 256, 268, 296, 246, 379, 188, 386, 388, 206, 207, 279, 219, 267, 194, 384, 253, 212, 365, 338, 269, 180, 286, 234, 198, 211, 296, 303, 241, 201, 264, 189, 335, 302, 196, 365, 235, 225, 274, 311, 377, 489, 236, 313, 187, 196, 273, 187, 247, 214, 258, 240, 218, 182, 402, 271, 213, 281, 399, 225, 251, 243, 210, 221, 186, 283, 317, 311, 184, 243, 190, 239, 236, 432, 247, 192, 186, 352, 207, 191, 223, 325, 190, 436, 260, 258, 255, 207, 195, 277, 285, 371, 199, 214, 179, 190, 192, 188, 292, 190, 225, 192, 193, 448, 327, 275, 192, 383, 378, 213, 197, 296, 220, 372, 246, 306, 284, 451, 381, 333, 245, 241, 253, 204, 183, 186, 194, 182, 179, 193, 224, 181, 464, 286, 282, 293, 193, 197, 201, 293, 299, 190, 207, 188, 280, 257, 220, 214, 324, 211, 262, 216, 195, 185, 184, 192, 297, 259, 188, 262, 341, 292, 216, 212, 203, 211, 222, 194, 412, 189, 210, 351, 275, 380, 287, 193, 226, 313, 303, 197, 253, 208, 222, 198, 214, 361, 186, 184, 219, 204, 204, 224, 261, 252, 323, 306, 224, 255, 241, 247, 188, 271, 260, 214, 280, 186, 259, 279, 355, 199, 287, 266, 179, 352, 396, 322, 406, 182, 278, 196, 196, 243, 221, 213, 204, 297, 208, 184, 250, 180, 244, 298, 188, 331, 201, 490, 300, 253, 240, 258, 203, 236, 252, 413, 198, 343, 330, 188, 185, 257, 219, 303, 186, 220, 211, 214, 313, 232, 271, 237, 210, 377, 226, 232, 277, 181, 218, 377, 180, 411, 180, 203, 337, 184, 457, 434, 268, 315, 252, 319, 194, 290, 276, 301, 252, 253, 236, 214, 197, 271, 207, 273, 204, 188, 187, 340, 244, 192, 264, 192, 181, 290, 180, 289, 193, 263, 203, 179, 385, 434, 257, 263, 217, 187, 246, 433, 244, 216, 299, 192, 214, 257, 200, 203, 233, 206, 189, 209, 213, 356, 282, 230, 252, 201, 198, 218, 278, 218, 299, 335, 454, 291, 297, 195, 225, 212, 247, 254, 291, 211, 251, 227, 301, 228, 195, 189, 250, 190, 254, 242, 266, 202, 278, 332, 266, 228, 189, 214, 337, 312, 185, 185, 241, 253, 264, 212, 234, 311, 230, 201, 410, 193, 181, 190, 227, 322, 269, 190, 205, 275, 195, 234, 196, 434, 331, 229, 264, 343, 226, 225, 195, 302, 287, 375, 292, 253, 263, 214, 197, 181, 257, 218, 220, 226, 284, 215, 297, 438, 253, 230, 312, 191, 213, 192, 192, 492, 194, 187, 291, 452, 321, 185, 273, 193, 226, 180, 250, 190, 181, 309, 191, 215, 281, 285, 306, 302, 354, 223, 187, 287, 204, 242, 211, 263, 229, 194, 220, 190, 197, 310, 201, 305, 199, 211, 424, 223, 207, 343, 191, 262, 259, 268, 294, 232, 213, 182, 193, 268, 188, 190, 285, 223, 195, 216, 305, 205, 273, 381, 193, 237, 298, 200, 299, 258, 340, 180, 312, 192, 273, 431, 191, 198, 293, 273, 297, 275, 287, 247, 217, 316, 312, 263, 185, 281, 237, 242, 235, 245, 269, 269, 270, 187, 265, 228, 367, 228, 189, 259, 197, 294, 230, 228, 233, 191, 260, 308, 253, 357, 183, 199, 206, 235, 209, 230, 188, 370, 216, 343, 356, 183, 221, 323, 384, 279, 278, 330, 183, 229, 200, 224, 244, 202, 407, 287, 207, 316, 213, 244, 199, 309, 237, 184, 202, 184, 244, 214, 340, 295, 399, 200, 316, 235, 326, 221, 214, 239, 231, 261, 268, 271, 333, 217, 285, 190, 246, 189, 283, 267, 193, 296, 188, 269, 268, 188, 433, 387, 220, 405, 261, 260, 382, 210, 191, 317, 271, 226, 404, 224, 226, 315, 362, 193, 273, 226, 182, 194, 228, 222, 337, 209, 189, 352, 217, 205, 182, 395, 218, 233, 184, 221, 206, 251, 407, 240, 247, 214, 197, 218, 286, 202, 210, 222, 284, 423, 180, 187, 231, 185, 376, 220, 221, 195, 262, 179, 253, 199, 248, 179, 274, 296, 271, 191, 207, 290, 281, 192, 282, 237, 387, 183, 273, 255, 286, 246, 230, 242, 343, 185, 184, 215, 204, 347, 199, 244, 195, 184, 228, 360, 293, 401, 206, 193, 274, 409, 260, 198, 197, 234, 183, 213, 231, 239, 225, 223, 186, 180, 237, 267, 200, 341, 265, 264, 243, 345, 308, 349, 288, 237, 310, 210, 276, 201, 321, 271, 239, 194, 268, 249, 211, 294, 346, 227, 225, 259, 326, 182, 363, 260, 203, 189, 230, 204, 181, 291, 183, 310, 194, 203, 193, 237, 269, 449, 218, 452, 338, 336, 191, 272, 230, 324, 224, 183, 183, 214, 198, 354, 197, 393, 185, 186, 460, 210, 315, 296, 194, 217, 210, 325, 184, 186, 287, 364, 195, 202, 350, 192, 314, 247, 187, 236, 301, 351, 230, 202, 180, 295, 214, 451, 206, 200, 242, 280, 219, 189, 194, 311, 344, 341, 240, 331, 304, 212, 218, 195, 386, 277, 285, 239, 206, 187, 381, 208, 182, 381, 276, 230, 244, 313, 303, 195, 305, 293, 251, 231, 249, 213, 193, 300, 191, 290, 444, 210, 284, 309, 182, 374, 256, 218, 182, 194, 235, 266, 270, 410, 253, 311, 310, 389, 207, 237, 253, 210, 219, 199, 201, 235, 231, 183, 222, 261, 421, 236, 195, 386, 342, 386, 312, 237, 320, 349, 369, 308, 190, 263, 216, 209, 189, 191, 295, 310, 186, 179, 256, 187, 250, 200, 193, 313, 336, 205, 209, 195, 355, 299, 358, 276, 237, 333, 220, 273, 219, 223, 243, 183, 234, 274, 188, 183, 193, 253, 185, 215, 238, 198, 188, 260, 185, 280, 187, 211, 184, 201, 185, 255, 226, 252, 257, 192, 197, 384, 290, 208, 200, 323, 320, 247, 366, 353, 222, 193, 222, 224, 274, 218, 264, 196, 241, 266, 347, 205, 232, 186, 357, 210, 186, 238, 201, 242, 288, 205, 275, 201, 213, 194, 193, 276, 242, 232, 204, 329, 182, 190, 217, 305, 375, 330, 244, 200, 340, 192, 300, 248, 191, 214, 222, 414, 238, 224, 238, 219, 202, 218, 314, 189, 222, 258, 189, 257, 219, 178, 246, 193, 213, 212, 223, 218, 378, 202, 280, 185, 263, 271, 182, 184, 192, 206, 182, 252, 232, 231, 229, 181, 214, 188, 220, 188, 196, 213, 333, 334, 256, 263, 268, 482, 293, 290, 199, 338, 342, 194, 268, 271, 234, 236, 337, 278, 292, 325, 436, 324, 219, 195, 229, 184, 412, 282, 208, 229, 184, 238, 249, 237, 218, 203, 378, 225, 216, 213, 190, 258, 201, 208, 181, 321, 223, 247, 211, 190, 197, 283, 428, 194, 236, 276, 201, 182, 230, 254, 226, 180, 416, 214, 212, 182, 338, 318, 202, 216, 243, 307, 223, 488, 349, 315, 209, 262, 204, 214, 245, 317, 217, 261, 187, 200, 218, 270, 184, 256, 258, 218, 248, 204, 473, 347, 183, 195, 327, 370, 276, 286, 241, 184, 220, 299, 283, 222, 230, 270, 193, 211, 208, 308, 241, 484, 249, 187, 231, 190, 195, 242, 233, 262, 278, 421, 311, 219, 197, 231, 187, 190, 289, 178, 236, 216, 260, 196, 205, 192, 297, 191, 179, 269, 245, 187, 205, 184, 316, 292, 199, 222, 296, 314, 208, 319, 180, 197, 394, 369, 296, 225, 355, 222, 253, 210, 206, 321, 272, 219, 241, 337, 194, 268, 272, 207, 210, 226, 249, 249, 319, 294, 322, 218, 236, 231, 369, 208, 388, 291, 213, 271, 206, 180, 277, 252, 307, 288, 254, 249, 270, 200, 240, 177, 374, 216, 238, 184, 199, 398, 232, 208, 291, 268, 203, 300, 242, 254, 219, 303, 259, 404, 476, 222, 237, 183, 321, 330, 294, 240, 214, 185, 225, 244, 208, 419, 187, 198, 201, 310, 239, 284, 209, 210, 269, 273, 277, 262, 235, 281, 218, 280, 327, 202, 231, 241, 241, 220, 456, 401, 393, 309, 214, 180, 225, 192, 202, 209, 189, 181, 211, 218, 221, 385, 303, 208, 231, 216, 288, 319, 203, 228, 282, 199, 287, 250, 449, 256, 211, 183, 371, 217, 179, 180, 190, 189, 429, 237, 259, 209, 217, 200, 186, 365, 209, 446, 302, 250, 250, 296, 242, 199, 210, 190, 208, 259, 221, 192, 213, 239, 221, 227, 184, 267, 334, 208, 212, 215, 197, 192, 278, 241, 181, 194, 389, 211, 251, 184, 198, 211, 266, 338, 271, 221, 183, 251, 191, 219, 287, 218, 187, 457, 229, 205, 451, 192, 249, 199, 192, 201, 232, 395, 191, 364, 187, 306, 229, 342, 194, 426, 181, 284, 191, 214, 253, 227, 187, 288, 210, 274, 208, 252, 306, 250, 261, 380, 481, 253, 250, 180, 263, 261, 198, 222, 316, 236, 269, 221, 249, 216, 182, 283, 288, 332, 315, 333, 192, 211, 245, 193, 185, 465, 204, 204, 190, 206, 235, 260, 309, 331, 192, 210, 388, 322, 176, 202, 286, 199, 286, 279, 341, 190, 287, 295, 258, 221, 210, 219, 195, 261, 239, 295, 289, 257, 192, 351, 264, 253, 216, 209, 262, 290, 304, 323, 223, 218, 207, 196, 211, 219, 330, 303, 207, 181, 288, 247, 260, 271, 328, 271, 287, 426, 208, 362, 285, 388, 205, 301, 245, 204, 193, 229, 268, 210, 267, 238, 197, 404, 289, 432, 382, 254, 433, 238, 234, 226, 251, 190, 261, 322, 443, 214, 201, 242, 193, 292, 276, 442, 317, 271, 250, 212, 400, 243, 453, 222, 328, 194, 186, 199, 195, 186, 213, 275, 208, 229, 197, 323, 382, 225, 230, 374, 400, 363, 211, 438, 284, 219, 330, 244, 239, 373, 283, 322, 295, 440, 184, 243, 286, 308, 183, 323, 284, 200, 189, 215, 207, 246, 196, 260, 377, 227, 210, 179, 198, 296, 200, 233, 180, 372, 237, 296, 279, 252, 205, 249, 331, 209, 253, 194, 251, 273, 397, 247, 204, 235, 232, 209, 270, 204, 350, 398, 185, 190, 263, 209, 250, 232, 235, 261, 184, 188, 290, 258, 188, 231, 186, 233, 189, 398, 286, 190, 261, 384, 185, 191, 214, 267, 278, 339, 205, 267, 416, 231, 270, 238, 239, 203, 183, 374, 194, 364, 271, 301, 204, 363, 392, 304, 233, 193, 179, 191, 285, 306, 286, 210, 196, 355, 216, 404, 179, 187, 210, 204, 202, 208, 182, 303, 332, 375, 197, 247, 349, 197, 288, 481, 183, 313, 199, 206, 208, 194, 255, 239, 187, 388, 211, 316, 209, 192, 199, 292, 231, 214, 212, 204, 222, 233, 208, 237, 254, 191, 267, 334, 297, 311, 320, 494, 193, 237, 373, 197, 229, 376, 198, 187, 282, 276, 192, 238, 376, 268, 198, 288, 313, 436, 194, 235, 224, 223, 292, 355, 230, 291, 324, 186, 190, 247, 244, 192, 240, 330, 253, 291, 316, 207, 307, 246, 236, 235, 236, 182, 281, 388, 355, 186, 312, 194, 323, 221, 307, 273, 324, 361, 411, 201, 338, 399, 282, 251, 209, 203, 247, 203, 212, 213, 250, 202, 184, 245, 282, 212, 218, 314, 296, 343, 232, 228, 302, 237, 369, 240, 206, 225, 271, 197, 186, 405, 230, 273, 196, 195, 191, 231, 185, 185, 294, 254, 197, 384, 268, 188, 226, 222, 277, 265, 220, 180, 191, 197, 217, 373, 249, 299, 248, 184, 204, 217, 309, 206, 186, 313, 250, 252, 339, 278, 176, 363, 262, 213, 280, 230, 191, 274, 306, 196, 395, 218, 204, 306, 309, 186, 253, 268, 201, 313, 188, 203, 181, 236, 357, 226, 216, 181, 358, 223, 241, 186, 182, 184, 373, 337, 183, 326, 212, 288, 202, 320, 196, 227, 209, 193, 185, 224, 181, 205, 415, 179, 229, 318, 185, 291, 359, 202, 197, 224, 179, 214, 304, 320, 461, 181, 227, 202, 373, 277, 192, 236, 379, 348, 237, 234, 280, 291, 304, 196, 209, 218, 344, 207, 268, 257, 249, 210, 213, 305, 190, 229, 182, 195, 213, 244, 369, 188, 331, 281, 254, 221, 232, 315, 198, 323, 218, 184, 226, 185, 282, 273, 375, 287, 204, 309, 219, 277, 389, 181, 308, 217, 278, 244, 278, 180, 180, 179, 203, 362, 362, 302, 357, 219, 423, 271, 267, 383, 250, 249, 427, 186, 225, 333, 225, 274, 199, 417, 186, 188, 212, 347, 199, 242, 300, 222, 256, 406, 285, 182, 232, 222, 258, 190, 189, 187, 309, 295, 214, 214, 320, 392, 189, 188, 275, 317, 224, 362, 314, 182, 186, 449, 186, 314, 339, 255, 209, 218, 276, 327, 274, 317, 298, 328, 432, 192, 412, 358, 210, 314, 218, 223, 307, 202, 185, 208, 231, 209, 208, 222, 317, 197, 222, 345, 280, 280, 279, 432, 248, 217, 236, 254, 357, 245, 237, 291, 302, 213, 253, 315, 267, 205, 359, 195, 229, 260, 404, 280, 431, 251, 238, 180, 335, 271, 368, 300, 221, 197, 186, 277, 273, 227, 341, 234, 287, 391, 188, 305, 386, 198, 377, 260, 286, 382, 368, 365, 233, 294, 276, 221, 234, 289, 306, 224, 215, 286, 248, 195, 238, 238, 322, 369, 291, 185, 244, 231, 322, 449, 363, 190, 237, 352, 213, 264, 340, 197, 190, 255, 199, 182, 229, 339, 330, 343, 246, 283, 211, 269, 233, 205, 231, 296, 250, 259, 207, 213, 230, 268, 357, 297, 186, 234, 406, 317, 256, 291, 289, 232, 225, 320, 356, 253, 205, 274, 453, 244, 205, 320, 201, 269, 336, 239, 374, 271, 387, 181, 266, 279, 268, 211, 189, 186, 237, 339, 386, 264, 376, 182, 184, 301, 282, 396, 316, 190, 482, 188, 200, 275, 199, 297, 300, 245, 390, 204, 236, 432, 276, 201, 272, 262, 347, 361, 181, 367, 194, 338, 247, 275, 223, 266, 212, 299, 297, 254, 207, 217, 310, 298, 467, 186, 196, 220, 318, 249, 195, 353, 287, 468, 252, 227, 240, 272, 226, 407, 380, 318, 475, 433, 199, 427, 341, 257, 354, 340, 241, 197, 205, 326, 193, 292, 193, 331, 343, 201, 241, 257, 329, 238, 213, 189, 210, 211, 455, 427, 318, 212, 273, 185, 265, 207, 188, 254, 267, 325, 227, 212, 197, 399, 309, 242, 231, 231, 225, 302, 184, 226, 257, 192, 257, 194, 318, 407, 353, 255, 197, 338, 310, 375, 446, 367, 184, 263, 438, 187, 347, 195, 272, 255, 190, 246, 215, 248, 306, 256, 211, 282, 212, 327, 264, 222, 281, 250, 288, 300, 260, 238, 234, 268, 350, 190, 184, 301, 275, 224, 201, 208, 358, 346, 391, 180, 275, 307, 219, 249, 438, 180, 188, 185, 192, 222, 183, 191, 348, 400, 183, 260, 231, 324, 216, 214, 298, 237, 231, 198, 230, 234, 456, 348, 288, 294, 203, 234, 279, 317, 190, 227, 354, 293, 246, 364, 381, 197, 285, 181, 369, 250, 460, 358, 223, 221, 423, 202, 319, 226, 234, 297, 211, 246, 490, 204, 411, 223, 410, 243, 325, 187, 182, 218, 331, 195, 306, 295, 195, 212, 215, 203, 186, 305, 233, 493, 184, 226, 195, 194, 181, 241, 206, 375, 187, 196, 269, 180, 233, 236, 219, 463, 214, 301, 208, 324, 365, 368, 180, 250, 269, 205, 265, 382, 224, 234, 185, 183, 332, 192, 214, 223, 181, 368, 209, 212, 257, 219, 368, 271, 251, 400, 196, 188, 205, 242, 186, 194, 328, 264, 241, 254, 295, 191, 216, 193, 249, 311, 482, 210, 191, 272, 409, 188, 327, 280, 181, 279, 470, 236, 214, 244, 189, 240, 181, 193, 229, 208, 309, 257, 276, 261, 255, 197, 214, 431, 186, 192, 320, 225, 240, 227, 250, 248, 273, 289, 274, 362, 205, 302, 307, 298, 179, 456, 290, 284, 235, 211, 195, 205, 272, 257, 337, 230, 283, 268, 306, 307, 194, 338, 215, 387, 222, 247, 285, 235, 337, 283, 344, 194, 323, 234, 287, 385, 259, 190, 182, 202, 283, 247, 181, 374, 186, 184, 338, 215, 195, 373, 192, 245, 304, 315, 192, 207, 360, 204, 275, 185, 423, 246, 207, 415, 190, 229, 452, 217, 330, 299, 203, 190, 184, 249, 186, 192, 273, 183, 345, 454, 225, 301, 240, 206, 179, 196, 209, 473, 182, 363, 205, 337, 288, 366, 357, 250, 187, 351, 181, 294, 224, 212, 320, 203, 240, 236, 204, 192, 301, 235, 483, 272, 214, 374, 324, 199, 325, 193, 261, 282, 207, 228, 199, 333, 204, 206, 336, 198, 302, 282, 206, 430, 428, 263, 275, 208, 191, 188, 226, 211, 218, 196, 203, 278, 184, 329, 363, 247, 197, 406, 194, 300, 182, 194, 335, 394, 249, 335, 233, 254, 230, 322, 233, 316, 211, 280, 277, 192, 218, 321, 217, 226, 229, 270, 211, 218, 187, 196, 225, 208, 279, 433, 261, 197, 258, 275, 207, 188, 188, 180, 222, 178, 374, 206, 182, 191, 187, 197, 276, 223, 181, 255, 253, 197, 237, 242, 411, 204, 289, 210, 287, 218, 182, 225, 182, 189, 284, 189, 202, 382, 208, 197, 315, 178, 247, 205, 258, 201, 206, 280, 269, 211, 212, 305, 358, 196, 196, 386, 247, 283, 305, 247, 216, 398, 184, 236, 384, 404, 411, 283, 259, 203, 212, 255, 200, 256, 203, 276, 226, 264, 365, 246, 195, 343, 307, 249, 204, 229, 223, 238, 310, 274, 244, 252, 243, 189, 197, 199, 234, 369, 272, 182, 218, 200, 235, 332, 243, 228, 191, 254, 289, 211, 182, 322, 205, 182, 255, 244, 253, 304, 246, 245, 208, 349, 223, 198, 221, 193, 360, 292, 429, 327, 183, 379, 394, 206, 202, 248, 299, 358, 179, 219, 294, 338, 223, 190, 224, 276, 197, 244, 203, 218, 219, 276, 321, 199, 268, 178, 306, 199, 209, 222, 237, 339, 187, 187, 195, 203, 268, 228, 254, 219, 196, 218, 374, 187, 194, 215, 185, 252, 206, 192, 243, 207, 233, 184, 206, 294, 212, 204, 300, 238, 267, 251, 180, 234, 330, 274, 271, 398, 258, 320, 235, 259, 388, 220, 265, 373, 347, 191, 215, 195, 212, 178, 352, 256, 339, 222, 211, 224, 311, 415, 337, 179, 207, 209, 182, 192, 307, 218, 249, 179, 301, 271, 187, 212, 250, 215, 404, 314, 360, 192, 193, 348, 235, 252, 243, 254, 318, 230, 224, 395, 199, 304, 288, 182, 234, 203, 215, 322, 199, 219, 210, 219, 182, 197, 193, 213, 279, 200, 182, 231, 198, 239, 236, 255, 224, 244, 193, 250, 223, 180, 183, 322, 270, 198, 389, 243, 286, 198, 328, 345, 286, 310, 189, 229, 221, 367, 220, 222, 245, 211, 274, 408, 281, 311, 233, 235, 222, 337, 184, 226, 306, 258, 199, 183, 403, 192, 298, 300, 345, 285, 302, 252, 278, 229, 215, 289, 335, 178, 210, 274, 242, 348, 193, 285, 194, 306, 188, 230, 189, 223, 186, 232, 211, 211, 183, 291, 299, 293, 213, 190, 308, 403, 361, 230, 251, 302, 230, 187, 186, 287, 220, 194, 218, 250, 208, 292, 346, 185, 267, 241, 185, 183, 272, 279, 258, 281, 188, 392, 191, 189, 397, 306, 239, 198, 334, 206, 185, 230, 307, 374, 251, 445, 268, 202, 312, 193, 186, 219, 340, 218, 195, 282, 293, 181, 368, 214, 219, 207, 255, 364, 272, 266, 290, 214, 301, 244, 319, 241, 325, 197, 277, 307, 236, 268, 236, 233, 313, 333, 189, 198, 209, 205, 179, 262, 270, 183, 207, 253, 387, 225, 205, 241, 231, 195, 250, 284, 352, 256, 310, 183, 258, 214, 280, 238, 215, 265, 228, 313, 182, 330, 212, 217, 226, 217, 185, 229, 289, 190, 296, 239, 246, 263, 227, 196, 208, 299, 314, 248, 270, 270, 203, 254, 246, 216, 368, 287, 203, 352, 191, 188, 414, 304, 350, 339, 197, 204, 237, 253, 199, 195, 287, 300, 304, 204, 386, 221, 279, 374, 217, 198, 295, 228, 269, 182, 379, 253, 431, 250, 193, 186, 239, 191, 267, 297, 296, 249, 312, 181, 327, 217, 220, 309, 218, 192, 195, 197, 303, 205, 295, 283, 233, 205, 221, 290, 231, 232, 203, 323, 268, 213, 178, 249, 304, 225, 185, 199, 226, 340, 231, 182, 181, 343, 186, 241, 240, 301, 304, 197, 233, 351, 238, 195, 201, 212, 395, 272, 209, 231, 268, 343, 431, 221, 256, 185, 196, 288, 259, 307, 241, 264, 178, 213, 239, 187, 228, 182, 191, 308, 179, 305, 255, 242, 215, 186, 205, 196, 270, 278, 380, 244, 243, 322, 252, 301, 206, 181, 400, 258, 208, 182, 212, 291, 205, 228, 380, 215, 316, 223, 357, 279, 256, 253, 199, 179, 319, 193, 262, 183, 217, 192, 190, 195, 180, 302, 334, 247, 225, 190, 229, 212, 251, 337, 181, 195, 234, 230, 291, 219, 421, 363, 202, 362, 383, 241, 382, 209, 341, 211, 360, 233, 186, 266, 188, 257, 228, 246, 396, 237, 190, 260, 342, 258, 263, 273, 239, 318, 254, 189, 195, 362, 192, 205, 244, 222, 244, 362, 241, 251, 280, 306, 278, 274, 229, 187, 219, 182, 310, 238, 188, 327, 251, 191, 231, 265, 240, 410, 203, 248, 292, 210, 255, 249, 200, 298, 186, 227, 305, 371, 205, 228, 347, 183, 258, 196, 206, 196, 217, 202, 310, 231, 358, 409, 329, 362, 243, 291, 235, 294, 220, 223, 196, 231, 196, 197, 275, 192, 277, 340, 312, 308, 201, 193, 258, 210, 409, 210, 197, 224, 300, 299, 244, 238, 200, 189, 180, 327, 237, 227, 195, 438, 401, 229, 328, 252, 186, 300, 264, 249, 235, 218, 200, 210, 221, 229, 203, 276, 260, 188, 202, 187, 267, 207, 202, 227, 419, 394, 179, 227, 283, 299, 247, 321, 322, 223, 339, 183, 200, 211, 207, 214, 383, 265, 185, 249, 315, 374, 242, 211, 232, 196, 377, 310, 202, 181, 384, 282, 192, 220, 415, 239, 320, 395, 208, 238, 211, 285, 321, 300, 192, 284, 292, 204, 188, 245, 353, 411, 191, 193, 250, 187, 183, 235, 300, 308, 203, 270, 333, 457, 236, 220, 197, 276, 242, 181, 223, 240, 193, 181, 300, 192, 262, 195, 212, 213, 202, 223, 178, 193, 259, 248, 255, 177, 194, 308, 189, 272, 263, 203, 317, 299, 200, 183, 219, 199, 323, 325, 230, 194, 329, 341, 213, 195, 192, 210, 196, 290, 189, 235, 187, 189, 210, 248, 376, 324, 300, 362, 221, 196, 204, 189, 305, 308, 233, 226, 369, 255, 214, 180, 229, 216, 277, 202, 187, 284, 183, 265, 228, 277, 309, 311, 342, 282, 290, 248, 216, 379, 181, 190, 264, 230, 316, 189, 291, 196, 190, 236, 194, 189, 295, 200, 179, 182, 231, 286, 306, 182, 312, 273, 212, 242, 214, 274, 247, 315, 184, 235, 189, 183, 200, 375, 267, 196, 256, 201, 328, 202, 213, 268, 191, 244, 187, 255, 180, 186, 275, 213, 265, 319, 191, 229, 218, 291, 205, 228, 272, 412, 293, 274, 228, 289, 427, 180, 334, 387, 201, 196, 285, 198, 212, 331, 237, 308, 269, 237, 370, 221, 181, 207, 240, 221, 243, 178, 383, 425, 188, 325, 335, 296, 190, 423, 315, 242, 341, 189, 198, 191, 258, 239, 206, 237, 184, 202, 203, 181, 421, 354, 251, 183, 295, 357, 263, 208, 196, 220, 315, 186, 343, 215, 360, 374, 328, 191, 292, 235, 400, 243, 189, 488, 239, 287, 390, 284, 402, 229, 256, 322, 342, 201, 185, 251, 291, 345, 184, 193, 322, 336, 220, 196, 213, 266, 190, 375, 253, 193, 194, 229, 181, 278, 211, 213, 207, 221, 190, 215, 242, 189, 197, 268, 197, 268, 330, 268, 193, 195, 329, 215, 187, 217, 199, 374, 184, 344, 195, 336, 195, 198, 184, 190, 195, 306, 324, 238, 237, 200, 243, 290, 223, 279, 313, 253, 189, 206, 198, 291, 185, 230, 222, 210, 231, 286, 208, 189, 206, 236, 185, 330, 200, 305, 226, 187, 222, 260, 236, 284, 375, 186, 304, 204, 262, 223, 292, 208, 277, 266, 209, 241, 193, 219, 290, 214, 195, 284, 285, 257, 229, 265, 286, 194, 197, 256, 213, 196, 210, 269, 186, 210, 202, 342, 250, 355, 279, 187, 207, 185, 297, 184, 396, 260, 284, 299, 295, 256, 194, 193, 358, 234, 278, 318, 275, 201, 215, 348, 210, 230, 275, 298, 209, 196, 207, 287, 185, 220, 202, 183, 190, 200, 296, 319, 200, 252, 287, 181, 235, 188, 389, 201, 214, 241, 218, 251, 216, 181, 262, 196, 201, 206, 304, 215, 294, 268, 262, 288, 217, 244, 180, 224, 366, 222, 205, 310, 252, 241, 200, 192, 223, 236, 184, 391, 260, 264, 322, 210, 182, 256, 292, 228, 179, 213, 253, 180, 328, 212, 209, 217, 227, 253, 217, 180, 204, 220, 217, 493, 256, 247, 235, 184, 259, 226, 284, 248, 239, 271, 220, 367, 185, 220, 234, 299, 275, 186, 218, 207, 187, 363, 398, 470, 235, 304, 261, 324, 236, 243, 251, 267, 185, 193, 235, 433, 384, 196, 239, 193, 281, 235, 210, 307, 346, 210, 318, 197, 200, 188, 326, 200, 293, 238, 370, 330, 221, 194, 227, 227, 179, 332, 251, 489, 188, 349, 181, 270, 193, 189, 339, 364, 284, 180, 189, 306, 418, 179, 235, 213, 192, 206, 316, 315, 221, 202, 180, 188, 313, 225, 243, 328, 389, 187, 182, 239, 242, 223, 181, 311, 184, 236, 281, 331, 305, 296, 244, 308, 198, 188, 290, 205, 350, 190, 261, 218, 217, 403, 242, 194, 213, 252, 290, 192, 259, 417, 234, 225, 203, 222, 224, 189, 204, 204, 261, 231, 206, 213, 193, 202, 286, 234, 272, 178, 197, 274, 198, 354, 238, 447, 272, 306, 404, 476, 239, 336, 205, 307, 207, 184, 214, 388, 202, 214, 256, 220, 226, 210, 181, 330, 253, 477, 342, 237, 206, 288, 186, 218, 202, 225, 191, 188, 190, 416, 307, 236, 245, 257, 192, 209, 308, 293, 185, 379, 306, 182, 188, 233, 262, 218, 200, 180, 190, 226, 201, 280, 229, 331, 359, 288, 436, 180, 215, 213, 275, 269, 203, 185, 248, 287, 229, 251, 183, 321, 231, 198, 220, 196, 189, 228, 193, 197, 345, 373, 218, 217, 364, 215, 329, 209, 265, 329, 255, 277, 262, 237, 334, 179, 224, 199, 353, 282, 279, 387, 214, 211, 189, 204, 226, 198, 346, 323, 223, 193, 324, 216, 178, 254, 385, 269, 184, 233, 217, 208, 181, 262, 213, 240, 197, 247, 230, 339, 324, 208, 239, 346, 250, 187, 249, 307, 203, 217, 277, 242, 300, 248, 195, 195, 185, 196, 191, 281, 292, 182, 291, 185, 370, 359, 199, 259, 214, 201, 261, 273, 375, 309, 193, 191, 233, 277, 240, 225, 238, 369, 202, 370, 185, 273, 220, 185, 277, 211, 317, 390, 244, 309, 272, 184, 350, 206, 429, 358, 182, 195, 219, 185, 287, 210, 209, 268, 237, 232, 194, 199, 282, 217, 352, 205, 261, 198, 336, 264, 357, 341, 284, 331, 248, 371, 257, 398, 261, 267, 292, 216, 255, 388, 322, 198, 211, 269, 220, 367, 179, 286, 296, 282, 252, 183, 287, 186, 272, 296, 248, 190, 221, 204, 224, 207, 290, 384, 183, 259, 205, 205, 427, 206, 234, 285, 183, 209, 412, 210, 197, 305, 183, 194, 223, 200, 183, 226, 257, 221, 215, 254, 429, 209, 281, 212, 277, 344, 374, 194, 221, 195, 235, 347, 209, 204, 227, 241, 202, 213, 183, 181, 196, 412, 222, 343, 200, 347, 272, 236, 200, 191, 216, 262, 320, 287, 286, 210, 195, 265, 194, 408, 211, 277, 289, 225, 218, 254, 294, 189, 267, 190, 482, 185, 249, 236, 188, 194, 192, 185, 180, 374, 249, 183, 309, 211, 182, 324, 200, 209, 328, 216, 212, 192, 193, 227, 408, 196, 267, 187, 195, 257, 189, 203, 254, 232, 274, 312, 198, 237, 188, 238, 189, 185, 188, 366, 316, 192, 311, 308, 281, 277, 235, 247, 245, 202, 304, 292, 207, 241, 281, 207, 214, 231, 196, 245, 253, 213, 224, 237, 258, 228, 297, 183, 179, 267, 207, 315, 218, 448, 238, 233, 227, 182, 199, 322, 194, 179, 197, 249, 225, 264, 190, 321, 303, 257, 227, 232, 197, 421, 274, 227, 386, 368, 377, 192, 248, 210, 300, 224, 186, 215, 384, 247, 285, 182, 190, 193, 234, 199, 207, 234, 390, 189, 283, 180, 203, 266, 237, 209, 189, 187, 198, 180, 198, 292, 189, 276, 180, 211, 215, 198, 191, 199, 235, 251, 222, 250, 190, 202, 231, 237, 349, 242, 226, 199, 225, 434, 254, 236, 324, 238, 181, 281, 249, 336, 287, 222, 406, 218, 321, 299, 277, 193, 215, 204, 180, 365, 226, 371, 273, 385, 285, 229, 237, 239, 200, 396, 220, 232, 327, 236, 206, 177, 284, 205, 395, 400, 286, 204, 275, 303, 445, 208, 240, 271, 266, 338, 215, 243, 190, 364, 211, 303, 320, 197, 289, 199, 232, 185, 219, 215, 247, 237, 194, 231, 348, 236, 191, 329, 326, 419, 208, 359, 183, 446, 268, 297, 188, 192, 370, 193, 292, 227, 194, 261, 185, 231, 336, 200, 181, 252, 201, 247, 263, 230, 177, 207, 184, 225, 211, 267, 233, 234, 218, 306, 225, 197, 381, 209, 209, 327, 266, 205, 220, 386, 219, 295, 262, 248, 179, 252, 227, 248, 249, 377, 340, 197, 211, 191, 195, 199, 305, 193, 335, 308, 298, 282, 290, 302, 184, 246, 365, 219, 188, 260, 272, 193, 207, 192, 216, 313, 215, 228, 192, 248, 180, 301, 350, 247, 189, 250, 244, 218, 275, 179, 458, 274, 397, 199, 181, 191, 344, 201, 195, 204, 194, 232, 287, 231, 216, 238, 314, 186, 319, 215, 288, 285, 182, 285, 242, 208, 244, 230, 191, 184, 443, 295, 256, 241, 204, 250, 244, 200, 276, 238, 183, 198, 210, 249, 245, 244, 183, 252, 203, 182, 180, 226, 232, 237, 235, 181, 200, 187, 195, 235, 200, 273, 275, 423, 232, 211, 201, 225, 225, 184, 304, 297, 270, 297, 295, 240, 209, 404, 247, 228, 327, 266, 202, 208, 362, 289, 205, 196, 294, 311, 373, 254, 232, 299, 218, 310, 335, 212, 376, 229, 216, 231, 280, 270, 258, 252, 268, 229, 224, 366, 236, 340, 248, 262, 194, 252, 209, 188, 221, 177, 217, 231, 272, 216, 220, 208, 180, 215, 270, 279, 252, 271, 287, 192, 218, 221, 199, 312, 258, 254, 183, 218, 254, 206, 221, 254, 188, 178, 220, 291, 215, 290, 181, 214, 305, 299, 452, 228, 273, 184, 274, 248, 359, 209, 308, 222, 368, 185, 214, 340, 302, 213, 209, 182, 219, 289, 199, 405, 288, 235, 229, 197, 196, 198, 407, 361, 263, 287, 321, 470, 267, 328, 251, 271, 268, 451, 359, 246, 271, 225, 262, 277, 287, 252, 385, 401, 216, 456, 187, 189, 210, 342, 456, 182, 266, 205, 202, 247, 270, 391, 216, 212, 223, 179, 309, 230, 262, 230, 331, 351, 242, 233, 278, 282, 201, 279, 345, 230, 213, 322, 222, 264, 402, 192, 254, 411, 198, 388, 223, 220, 298, 352, 298, 207, 229, 375, 245, 313, 210, 217, 202, 354, 244, 246, 357, 278, 236, 250, 250, 219, 275, 260, 383, 223, 365, 303, 179, 370, 243, 271, 182, 212, 213, 210, 189, 238, 279, 267, 212, 353, 293, 232, 324, 199, 236, 207, 213, 216, 198, 289, 293, 185, 368, 213, 404, 254, 193, 197, 215, 245, 292, 250, 441, 265, 194, 198, 177, 234, 207, 224, 260, 208, 211, 296, 220, 374, 294, 286, 214, 231, 356, 282, 197, 455, 237, 445, 231, 184, 241, 215, 268, 194, 187, 326, 187, 228, 206, 198, 188, 268, 354, 311, 222, 223, 181, 219, 235, 258, 243, 201, 284, 395, 321, 354, 223, 192, 190, 188, 278, 273, 250, 419, 326, 362, 337, 199, 374, 265, 192, 201, 184, 236, 261, 397, 308, 221, 233, 469, 210, 257, 265, 193, 300, 362, 241, 273, 290, 181, 225, 264, 277, 244, 187, 385, 199, 211, 362, 181, 319, 271, 385, 245, 256, 213, 314, 300, 207, 191, 195, 221, 208, 282, 296, 186, 357, 227, 181, 313, 401, 233, 195, 181, 257, 268, 184, 203, 224, 251, 283, 239, 364, 257, 213, 327, 185, 195, 362, 221, 233, 186, 301, 196, 253, 205, 233, 183, 193, 215, 189, 232, 380, 276, 195, 277, 210, 273, 298, 185, 215, 320, 201, 281, 200, 206, 186, 487, 309, 256, 200, 251, 208, 199, 234, 212, 317, 273, 195, 196, 268, 273, 196, 242, 219, 284, 197, 447, 378, 296, 390, 269, 197, 218, 318, 331, 228, 230, 390, 291, 335, 239, 198, 255, 222, 185, 293, 356, 248, 185, 290, 321, 198, 197, 254, 257, 200, 201, 240, 253, 190, 231, 225, 205, 205, 294, 287, 202, 211, 197, 179, 220, 274, 276, 193, 185, 201, 226, 334, 307, 218, 192, 226, 351, 299, 235, 180, 220, 276, 356, 281, 242, 231, 298, 261, 368, 216, 184, 247, 380, 195, 198, 222, 241, 231, 189, 342, 271, 216, 202, 257, 257, 319, 187, 230, 199, 234, 320, 209, 224, 266, 186, 273, 273, 444, 240, 300, 353, 214, 215, 301, 240, 188, 224, 368, 242, 234, 230, 188, 188, 223, 289, 211, 224, 216, 287, 183, 272, 228, 206, 350, 279, 293, 264, 189, 232, 215, 276, 256, 384, 314, 226, 230, 186, 208, 210, 368, 349, 226, 381, 275, 197, 377, 438, 207, 229, 185, 197, 331, 194, 323, 293, 199, 203, 188, 250, 391, 186, 230, 391, 194, 338, 264, 204, 260, 247, 180, 196, 191, 217, 204, 324, 325, 414, 195, 209, 194, 189, 182, 220, 257, 180, 340, 344, 399, 179, 271, 297, 306, 317, 254, 264, 239, 220, 381, 204, 352, 184, 190, 273, 237, 222, 300, 247, 204, 240, 199, 221, 235, 256, 244, 209, 211, 309, 182, 224, 317, 288, 192, 228, 359, 263, 198, 241, 196, 230, 290, 272, 235, 328, 211, 204, 378, 259, 260, 230, 186, 212, 243, 257, 190, 313, 191, 196, 187, 223, 187, 194, 400, 252, 241, 200, 179, 203, 222, 216, 234, 183, 235, 195, 209, 200, 243, 231, 269, 320, 461, 206, 208, 338, 191, 302, 184, 318, 199, 207, 211, 197, 195, 230, 220, 187, 207, 217, 251, 350, 187, 249, 224, 212, 260, 182, 244, 179, 255, 313, 191, 237, 231, 192, 216, 290, 240, 292, 234, 277, 232, 224, 420, 269, 291, 193, 245, 280, 239, 359, 198, 340, 246, 362, 207, 233, 361, 255, 205, 213, 180, 224, 240, 232, 379, 199, 200, 220, 196, 256, 251, 212, 317, 208, 246, 272, 222, 283, 360, 254, 188, 199, 282, 227, 374, 241, 216, 340, 233, 209, 199, 200, 190, 210, 237, 224, 267, 217, 303, 315, 252, 262, 189, 185, 468, 196, 237, 198, 371, 217, 185, 321, 429, 333, 252, 203, 297, 261, 263, 186, 237, 235, 191, 213, 182, 212, 193, 285, 188, 238, 200, 219, 213, 300, 212, 246, 294, 224, 263, 291, 210, 339, 253, 225, 237, 336, 208, 212, 185, 189, 217, 293, 191, 183, 262, 184, 203, 194, 196, 239, 191, 248, 183, 202, 327, 181, 185, 203, 454, 239, 193, 259, 269, 388, 183, 223, 229, 237, 233, 180, 274, 303, 216, 247, 194, 272, 197, 311, 221, 181, 197, 256, 242, 196, 297, 236, 212, 282, 215, 254, 282, 334, 240, 253, 185, 217, 310, 198, 266, 285, 269, 252, 188, 213, 289, 296, 204, 371, 261, 245, 218, 185, 179, 237, 197, 204, 182, 184, 310, 218, 412, 216, 233, 258, 222, 201, 215, 234, 266, 258, 292, 235, 223, 260, 287, 201, 323, 183, 355, 177, 185, 262, 237, 261, 235, 434, 231, 248, 264, 284, 215, 253, 217, 247, 297, 201, 263, 274, 213, 209, 287, 345, 266, 194, 246, 178, 234, 181, 227, 311, 273, 195, 228, 224, 185, 179, 196, 193, 251, 198, 213, 182, 190, 235, 229, 202, 248, 392, 206, 240, 389, 256, 203, 186, 242, 264, 237, 317, 347, 240, 254, 180, 192, 274, 208, 194, 350, 185, 219, 198, 199, 214, 179, 324, 230, 234, 214, 358, 224, 215, 354, 211, 416, 183, 282, 197, 184, 188, 237, 189, 185, 213, 188, 197, 210, 330, 202, 288, 207, 274, 233, 328, 382, 369, 313, 242, 253, 261, 202, 359, 208, 210, 242, 220, 238, 238, 228, 223, 251, 209, 225, 274, 210, 221, 259, 286, 299, 432, 196, 275, 370, 227, 214, 292, 237, 210, 336, 223, 248, 416, 213, 258, 186, 182, 255, 317, 210, 193, 208, 304, 233, 308, 196, 189, 249, 206, 190, 195, 211, 280, 241, 361, 268, 326, 188, 299, 358, 202, 292, 184, 201, 201, 230, 276, 191, 324, 401, 352, 255, 194, 397, 263, 179, 177, 225, 199, 192, 245, 305, 211, 184, 283, 318, 244, 300, 185, 237, 263, 373, 205, 191, 232, 202, 225, 265, 254, 284, 190, 207, 309, 201, 280, 185, 179, 186, 190, 221, 320, 322, 213, 248, 293, 193, 252, 219, 210, 195, 268, 197, 218, 347, 320, 178, 191, 268, 191, 189, 257, 236, 198, 354, 397, 344, 205, 192, 214, 236, 228, 230, 284, 206, 302, 189, 329, 435, 196, 191, 178, 362, 206, 298, 188, 188, 261, 249, 378, 323, 187, 251, 274, 262, 179, 354, 188, 239, 291, 184, 215, 213, 305, 209, 201, 190, 318, 202, 305, 237, 187, 392, 393, 198, 194, 226, 221, 181, 244, 200, 271, 294, 180, 246, 239, 183, 234, 251, 284, 191, 199, 205, 276, 234, 197, 258, 267, 192, 186, 220, 272, 325, 189, 338, 199, 206, 220, 330, 204, 224, 328, 191, 231, 180, 187, 224, 200, 314, 198, 201, 185, 271, 192, 225, 279, 199, 313, 211, 230, 209, 190, 303, 200, 236, 363, 218, 367, 394, 376, 188, 242, 277, 297, 438, 264, 175, 367, 216, 268, 187, 200, 186, 199, 292, 225, 187, 198, 190, 185, 212, 408, 326, 387, 321, 221, 357, 187, 199, 275, 325, 241, 184, 418, 304, 193, 328, 182, 183, 260, 215, 232, 239, 315, 401, 242, 324, 357, 235, 201, 245, 259, 182, 183, 190, 225, 240, 327, 398, 435, 294, 250, 235, 252, 189, 229, 223, 186, 315, 241, 193, 256, 185, 243, 228, 212, 206, 432, 184, 200, 193, 180, 290, 299, 182, 266, 239, 222, 245, 198, 315, 197, 237, 182, 221, 339, 290, 202, 276, 219, 315, 204, 338, 202, 207, 245, 323, 209, 273, 185, 178, 410, 233, 214, 306, 227, 256, 207, 346, 260, 257, 192, 204, 317, 294, 192, 186, 209, 392, 226, 215, 222, 208, 214, 232, 277, 207, 342, 217, 199, 185, 313, 241, 270, 226, 418, 197, 210, 183, 216, 224, 181, 348, 233, 261, 183, 221, 243, 421, 335, 193, 188, 314, 198, 209, 321, 193, 267, 268, 283, 202, 202, 294, 237, 256, 187, 230, 241, 407, 199, 307, 203, 231, 239, 236, 366, 191, 334, 189, 470, 288, 181, 295, 307, 184, 238, 246, 262, 259, 249, 192, 215, 191, 251, 273, 197, 224, 184, 199, 194, 193, 261, 198, 245, 313, 285, 302, 303, 192, 248, 313, 199, 205, 251, 246, 178, 238, 284, 259, 297, 288, 299, 195, 329, 191, 185, 215, 212, 196, 177, 267, 368, 306, 191, 352, 189, 199, 237, 327, 304, 284, 299, 360, 202, 188, 249, 271, 210, 232, 291, 223, 199, 186, 190, 227, 186, 205, 192, 353, 383, 294, 210, 295, 258, 384, 252, 307, 211, 255, 192, 190, 250, 302, 237, 233, 250, 290, 249, 310, 184, 272, 419, 344, 204, 228, 184, 186, 380, 193, 199, 194, 367, 191, 179, 212, 373, 323, 209, 188, 198, 405, 196, 223, 218, 281, 206, 248, 193, 199, 191, 224, 242, 454, 251, 202, 318, 208, 362, 193, 186, 212, 253, 235, 243, 267, 307, 400, 182, 370, 295, 212, 289, 208, 184, 195, 318, 250, 243, 259, 214, 430, 255, 217, 291, 239, 278, 318, 229, 192, 449, 229, 491, 188, 311, 376, 189, 281, 350, 186, 186, 242, 241, 265, 422, 203, 298, 188, 237, 289, 188, 194, 183, 213, 226, 207, 191, 197, 181, 227, 253, 213, 226, 240, 208, 471, 192, 190, 191, 200, 323, 225, 345, 246, 243, 334, 232, 210, 234, 250, 181, 246, 215, 407, 248, 237, 321, 187, 260, 212, 249, 252, 236, 205, 315, 354, 207, 231, 198, 212, 194, 248, 183, 297, 212, 312, 253, 223, 206, 195, 257, 245, 293, 222, 192, 312, 204, 430, 245, 309, 209, 255, 357, 191, 375, 217, 199, 500, 205, 184, 436, 299, 205, 341, 194, 190, 246, 318, 318, 303, 236, 186, 265, 185, 396, 258, 284, 207, 283, 208, 333, 280, 197, 192, 269, 194, 274, 203, 208, 376, 256, 331, 309, 191, 447, 441, 319, 202, 268, 183, 320, 181, 348, 297, 202, 195, 240, 316, 252, 227, 384, 274, 191, 386, 277, 207, 354, 228, 304, 197, 181, 292, 235, 302, 235, 278, 193, 435, 265, 182, 253, 229, 260, 227, 185, 191, 225, 219, 237, 370, 223, 201, 275, 255, 197, 187, 206, 209, 206, 262, 265, 237, 220, 196, 284, 188, 190, 263, 215, 225, 392, 261, 228, 207, 192, 226, 264, 196, 219, 203, 331, 369, 333, 302, 247, 404, 316, 213, 203, 223, 193, 208, 195, 200, 247, 211, 333, 187, 272, 202, 206, 282, 284, 180, 344, 239, 181, 212, 242, 212, 277, 184, 253, 210, 207, 184, 202, 247, 265, 195, 277, 346, 238, 383, 272, 229, 208, 181, 226, 218, 194, 293, 179, 381, 187, 398, 393, 204, 229, 181, 210, 255, 182, 198, 235, 220, 195, 329, 198, 203, 181, 187, 222, 196, 185, 330, 293, 384, 221, 291, 192, 213, 214, 331, 321, 244, 423, 301, 182, 211, 200, 202, 303, 331, 282, 462, 194, 187, 368, 202, 229, 238, 300, 238, 305, 358, 251, 205, 185, 269, 250, 219, 198, 179, 310, 179, 268, 270, 193, 238, 351, 182, 231, 238, 259, 331, 311, 416, 251, 235, 189, 305, 191, 215, 188, 204, 197, 244, 215, 325, 223, 319, 389, 192, 327, 243, 231, 259, 181, 208, 272, 389, 289, 212, 234, 219, 408, 228, 201, 259, 235, 251, 198, 250, 290, 189, 219, 308, 230, 386, 193, 283, 304, 196, 193, 306, 314, 202, 276, 196, 256, 323, 196, 233, 259, 324, 259, 466, 219, 251, 184, 247, 302, 199, 211, 178, 274, 190, 233, 238, 191, 470, 341, 202, 183, 231, 385, 472, 221, 278, 181, 263, 215, 220, 198, 250, 326, 194, 283, 192, 235, 388, 216, 203, 207, 191, 266, 215, 331, 187, 227, 179, 197, 202, 206, 415, 258, 218, 209, 179, 329, 407, 212, 337, 314, 226, 268, 263, 232, 252, 217, 197, 218, 264, 217, 280, 304, 186, 237, 281, 345, 270, 192, 341, 256, 217, 217, 210, 208, 191, 231, 211, 231, 248, 231, 232, 266, 239, 298, 250, 314, 221, 221, 219, 484, 249, 224, 370, 207, 241, 198, 298, 197, 228, 312, 202, 182, 208, 197, 210, 382, 212, 265, 182, 310, 199, 361, 243, 319, 209, 236, 279, 192, 189, 206, 249, 203, 432, 202, 209, 369, 191, 276, 196, 355, 298, 215, 200, 207, 226, 197, 238, 306, 287, 208, 224, 202, 181, 384, 278, 222, 306, 203, 363, 313, 188, 204, 281, 200, 258, 203, 241, 183, 256, 190, 214, 226, 185, 238, 217, 410, 478, 321, 189, 205, 224, 384, 249, 188, 227, 243, 179, 241, 337, 234, 347, 265, 238, 214, 196, 440, 296, 306, 188, 318, 277, 257, 193, 194, 246, 192, 353, 404, 231, 197, 285, 212, 319, 385, 183, 244, 235, 185, 213, 342, 288, 191, 187, 211, 367, 416, 391, 232, 223, 194, 267, 399, 200, 362, 202, 429, 302, 223, 218, 184, 191, 202, 225, 182, 213, 205, 238, 225, 390, 226, 181, 185, 472, 211, 243, 288, 213, 321, 208, 253, 349, 215, 196, 429, 275, 257, 303, 319, 321, 210, 196, 183, 234, 201, 242, 192, 355, 281, 335, 234, 199, 181, 268, 237, 212, 310, 196, 240, 280, 195, 351, 214, 201, 259, 187, 464, 187, 266, 272, 325, 263, 329, 242, 243, 179, 180, 222, 191, 318, 179, 214, 214, 283, 374, 206, 199, 276, 212, 212, 212, 205, 245, 214, 224, 315, 396, 228, 267, 182, 247, 210, 259, 286, 233, 332, 222, 353, 192, 285, 365, 231, 359, 321, 226, 256, 306, 195, 234, 189, 360, 221, 197, 268, 234, 196, 224, 195, 356, 205, 193, 185, 286, 185, 290, 177, 205, 248, 267, 399, 375, 187, 213, 226, 202, 206, 240, 207, 301, 198, 193, 246, 315, 180, 181, 218, 492, 199, 272, 363, 195, 251, 253, 275, 233, 199, 208, 227, 219, 229, 228, 289, 182, 320, 274, 284, 201, 269, 182, 192, 307, 294, 197, 186, 185, 231, 231, 292, 217, 303, 379, 183, 403, 203, 222, 206, 188, 199, 246, 205, 257, 227, 256, 246, 196, 285, 220, 193, 213, 394, 243, 277, 386, 245, 285, 305, 261, 209, 206, 199, 255, 288, 250, 249, 192, 203, 189, 190, 278, 294, 192, 226, 189, 340, 214, 266, 343, 198, 195, 257, 243, 416, 197, 265, 266, 230, 266, 267, 181, 235, 387, 467, 205, 296, 184, 238, 217, 192, 193, 197, 187, 263, 219, 246, 194, 200, 184, 223, 230, 236, 284, 249, 358, 210, 191, 363, 256, 196, 238, 283, 214, 247, 217, 185, 202, 315, 189, 210, 195, 232, 235, 369, 241, 196, 310, 211, 186, 241, 298, 241, 202, 496, 450, 204, 205, 227, 209, 300, 237, 179, 302, 228, 293, 223, 285, 297, 205, 257, 226, 314, 236, 181, 412, 285, 400, 213, 181, 209, 268, 378, 293, 190, 217, 265, 197, 447, 276, 190, 191, 272, 295, 198, 231, 416, 304, 212, 215, 372, 252, 190, 180, 227, 239, 277, 375, 311, 180, 273, 284, 365, 213, 328, 240, 204, 294, 272, 273, 250, 203, 313, 308, 198, 262, 213, 184, 203, 241, 293, 419, 206, 195, 203, 239, 196, 212, 191, 207, 296, 306, 335, 288, 297, 319, 386, 380, 467, 365, 189, 257, 211, 204, 251, 250, 185, 214, 270, 322, 188, 202, 204, 406, 192, 448, 292, 470, 217, 236, 302, 217, 191, 235, 254, 296, 182, 180, 477, 207, 235, 213, 199, 190, 221, 294, 417, 227, 277, 268, 187, 203, 236, 387, 217, 196, 227, 216, 239, 296, 179, 409, 245, 243, 285, 195, 244, 229, 293, 179, 193, 185, 221, 338, 228, 187, 183, 221, 180, 196, 306, 180, 281, 264, 370, 362, 201, 234, 337, 191, 396, 205, 206, 219, 375, 336, 192, 469, 278, 185, 224, 225, 385, 180, 315, 356, 188, 214, 243, 262, 182, 291, 186, 306, 373, 226, 268, 204, 181, 267, 265, 229, 252, 242, 320, 298, 198, 203, 425, 361, 247, 268, 210, 327, 312, 213, 331, 197, 277, 260, 218, 186, 302, 212, 205, 187, 258, 203, 204, 240, 358, 485, 340, 203, 192, 374, 192, 279, 228, 255, 178, 232, 338, 201, 262, 260, 211, 197, 280, 192, 294, 256, 203, 234, 264, 180, 194, 212, 218, 295, 417, 216, 274, 188, 243, 295, 369, 194, 300, 209, 350, 185, 204, 181, 454, 212, 311, 238, 317, 289, 184, 288, 302, 231, 240, 260, 248, 234, 401, 199, 186, 189, 275, 216, 202, 196, 303, 327, 373, 255, 245, 283, 260, 237, 262, 199, 413, 249, 188, 206, 179, 274, 182, 387, 179, 215, 287, 233, 248, 252, 191, 233, 216, 231, 216, 180, 294, 220, 205, 272, 335, 211, 253, 261, 204, 227, 265, 204, 189, 215, 181, 237, 236, 229, 263, 236, 304, 405, 210, 185, 298, 265, 190, 242, 195, 294, 209, 197, 360, 316, 183, 256, 241, 289, 380, 370, 418, 196, 274, 225, 252, 199, 233, 186, 391, 186, 268, 324, 304, 234, 300, 321, 267, 263, 379, 355, 355, 188, 195, 214, 299, 276, 398, 296, 197, 274, 335, 190, 322, 272, 224, 260, 196, 271, 207, 303, 203, 218, 233, 200, 212, 261, 178, 311, 262, 226, 205, 208, 191, 207, 337, 304, 199, 185, 201, 223, 199, 285, 212, 208, 354, 187, 215, 227, 274, 194, 293, 362, 241, 209, 247, 348, 194, 239, 335, 179, 228, 256, 461, 340, 406, 273, 265, 246, 317, 268, 276, 229, 415, 262, 440, 219, 217, 252, 378, 251, 223, 223, 216, 332, 357, 190, 246, 209, 248, 191, 356, 189, 292, 494, 330, 308, 422, 313, 220, 255, 286, 410, 247, 209, 243, 329, 187, 296, 208, 395, 245, 188, 332, 450, 208, 190, 286, 235, 223, 222, 188, 239, 211, 305, 193, 216, 254, 233, 389, 252, 298, 217, 265, 212, 196, 190, 372, 261, 335, 273, 249, 247, 302, 243, 239, 192, 371, 200, 189, 317, 215, 242, 228, 424, 240, 331, 252, 230, 296, 191, 186, 223, 188, 219, 186, 233, 350, 198, 192, 215, 440, 237, 180, 265, 319, 243, 309, 198, 180, 267, 216, 223, 214, 196, 226, 344, 344, 237, 325, 232, 215, 319, 403, 353, 304, 251, 282, 192, 188, 241, 334, 246, 312, 185, 225, 235, 222, 219, 214, 223, 280, 232, 265, 288, 193, 425, 330, 236, 277, 181, 208, 415, 211, 266, 193, 328, 221, 214, 366, 321, 191, 293, 286, 196, 277, 300, 388, 279, 219, 198, 254, 270, 260, 240, 194, 375, 227, 217, 183, 310, 241, 235, 191, 180, 193, 184, 235, 200, 250, 316, 195, 212, 293, 230, 314, 215, 293, 254, 210, 330, 202, 316, 303, 204, 218, 247, 287, 196, 314, 223, 225, 194, 392, 224, 323, 189, 200, 194, 287, 250, 222, 222, 202, 232, 182, 213, 200, 189, 199, 219, 276, 249, 181, 397, 359, 384, 216, 191, 201, 257, 243, 242, 195, 197, 321, 392, 247, 224, 339, 289, 245, 268, 206, 226, 318, 236, 199, 294, 186, 228, 467, 198, 190, 264, 323, 285, 248, 471, 223, 397, 217, 214, 195, 187, 252, 334, 213, 402, 281, 222, 324, 414, 213, 182, 238, 238, 212, 391, 208, 239, 335, 215, 367, 320, 360, 400, 342, 297, 209, 268, 225, 274, 205, 279, 243, 187, 354, 319, 187, 246, 254, 216, 298, 204, 199, 237, 226, 252, 204, 208, 470, 288, 356, 278, 209, 187, 277, 192, 415, 256, 359, 365, 499, 215, 181, 206, 292, 230, 313, 254, 270, 262, 253, 307, 188, 276, 190, 242, 302, 262, 202, 190, 257, 204, 407, 190, 279, 266, 225, 186, 270, 190, 214, 220, 275, 195, 220, 222, 265, 261, 275, 188, 256, 224, 200, 223, 194, 179, 187, 179, 242, 184, 266, 245, 191, 315, 201, 274, 233, 186, 214, 200, 215, 346, 276, 212, 261, 263, 202, 328, 256, 200, 264, 200, 187, 206, 388, 180, 348, 229, 458, 227, 261, 270, 281, 240, 265, 435, 257, 188, 187, 204, 380, 206, 204, 191, 258, 231, 261, 283, 186, 231, 223, 235, 195, 254, 262, 208, 322, 185, 200, 300, 186, 190, 186, 443, 350, 213, 193, 277, 296, 213, 275, 343, 204, 275, 195, 213, 325, 190, 276, 201, 267, 213, 250, 234, 254, 185, 234, 272, 386, 242, 282, 230, 194, 192, 423, 187, 214, 265, 234, 351, 365, 247, 185, 182, 340, 223, 186, 241, 221, 191, 205, 348, 291, 291, 215, 184, 279, 214, 242, 220, 194, 221, 313, 189, 216, 200, 314, 310, 190, 265, 198, 482, 256, 196, 389, 328, 188, 315, 223, 278, 349, 353, 216, 331, 394, 220, 297, 237, 200, 189, 211, 187, 228, 478, 236, 207, 298, 239, 210, 305, 361, 328, 299, 218, 333, 194, 225, 188, 443, 340, 341, 272, 317, 301, 243, 387, 258, 305, 196, 458, 292, 269, 196, 237, 411, 399, 218, 240, 186, 209, 474, 207, 304, 188, 266, 185, 187, 186, 194, 265, 203, 254, 246, 267, 206, 258, 317, 272, 206, 261, 248, 309, 194, 304, 454, 231, 199, 306, 208, 184, 183, 187, 272, 204, 182, 192, 192, 185, 190, 204, 189, 181, 207, 211, 249, 236, 194, 258, 422, 206, 192, 341, 283, 283, 180, 305, 218, 247, 184, 272, 297, 248, 236, 182, 300, 190, 288, 414, 277, 285, 213, 196, 183, 305, 196, 179, 247, 265, 283, 400, 202, 314, 267, 180, 224, 184, 324, 292, 296, 193, 215, 445, 268, 218, 313, 295, 188, 242, 224, 189, 387, 196, 214, 278, 249, 454, 289, 215, 412, 195, 186, 313, 213, 186, 301, 241, 293, 309, 280, 192, 243, 205, 215, 181, 184, 450, 280, 244, 230, 194, 366, 185, 216, 287, 204, 184, 253, 191, 269, 229, 252, 196, 195, 325, 180, 235, 224, 207, 201, 300, 230, 206, 273, 385, 340, 258, 217, 196, 210, 196, 208, 185, 238, 210, 407, 242, 212, 240, 194, 199, 339, 210, 239, 239, 195, 197, 221, 206, 180, 286, 190, 332, 228, 291, 394, 400, 218, 209, 368, 179, 279, 191, 225, 274, 204, 293, 308, 188, 326, 223, 183, 205, 202, 369, 188, 243, 238, 203, 183, 374, 212, 210, 182, 186, 189, 279, 181, 185, 219, 183, 191, 196, 219, 200, 185, 210, 302, 303, 241, 235, 216, 284, 195, 243, 222, 211, 225, 181, 428, 195, 344, 391, 240, 339, 277, 256, 358, 321, 213, 312, 199, 209, 227, 222, 338, 333, 243, 264, 233, 224, 185, 237, 219, 183, 264, 245, 225, 194, 222, 355, 180, 326, 237, 242, 268, 280, 266, 227, 280, 200, 184, 221, 255, 285, 275, 178, 209, 266, 380, 179, 270, 224, 203, 186, 257, 228, 228, 266, 179, 224, 295, 249, 324, 208, 204, 257, 187, 245, 317, 181, 186, 268, 395, 191, 311, 249, 201, 197, 355, 310, 271, 232, 224, 181, 248, 204, 202, 206, 185, 390, 369, 400, 207, 319, 190, 306, 456, 186, 255, 196, 195, 388, 311, 317, 200, 282, 278, 272, 211, 242, 329, 194, 259, 241, 235, 188, 250, 263, 217, 186, 354, 206, 323, 298, 204, 185, 280, 295, 300, 482, 291, 307, 210, 223, 310, 208, 263, 232, 293, 193, 320, 227, 287, 181, 258, 193, 278, 242, 252, 264, 213, 281, 387, 250, 197, 188, 179, 224, 219, 313, 375, 199, 246, 288, 194, 316, 243, 262, 270, 265, 180, 266, 291, 327, 299, 226, 210, 185, 218, 230, 322, 410, 182, 198, 225, 436, 225, 238, 227, 181, 294, 342, 192, 285, 248, 195, 217, 182, 308, 268, 252, 199, 293, 206, 194, 265, 297, 237, 213, 326, 340, 194, 236, 203, 208, 309, 291, 270, 189, 324, 191, 242, 201, 364, 212, 217, 211, 330, 188, 211, 201, 195, 188, 268, 194, 224, 394, 206, 198, 370, 202, 435, 251, 360, 225, 184, 190, 210, 246, 274, 294, 317, 310, 276, 221, 267, 200, 234, 210, 271, 272, 302, 221, 192, 288, 189, 337, 211, 214, 213, 203, 374, 255, 428, 457, 311, 190, 303, 208, 223, 211, 193, 292, 272, 211, 354, 237, 365, 180, 198, 268, 221, 333, 231, 198, 185, 315, 195, 435, 314, 204, 262, 360, 299, 220, 242, 254, 248, 286, 193, 322, 283, 185, 383, 230, 331, 196, 198, 463, 271, 193, 328, 291, 186, 333, 183, 284, 206, 324, 201, 263, 390, 225, 187, 391, 181, 246, 294, 332, 418, 201, 238, 203, 288, 412, 334, 289, 269, 197, 198, 314, 186, 305, 246, 280, 455, 208, 210, 186, 258, 203, 341, 494, 376, 251, 344, 240, 269, 183, 318, 236, 228, 362, 256, 378, 186, 218, 203, 203, 198, 241, 306, 227, 188, 201, 301, 315, 275, 271, 305, 232, 235, 330, 307, 272, 191, 272, 262, 189, 250, 379, 186, 204, 255, 211, 205, 229, 295, 190, 201, 201, 196, 232, 324, 281, 254, 236, 244, 262, 195, 202, 201, 252, 232, 275, 205, 357, 320, 201, 265, 307, 272, 237, 394, 194, 278, 233, 197, 251, 272, 185, 429, 189, 211, 324, 300, 456, 389, 235, 217, 180, 323, 194, 179, 236, 183, 249, 238, 207, 277, 221, 275, 295, 294, 279, 373, 196, 210, 190, 185, 298, 221, 209, 309, 361, 214, 303, 300, 310, 230, 231, 293, 226, 295, 224, 365, 313, 181, 319, 206, 438, 197, 199, 215, 279, 187, 189, 248, 193, 199, 321, 207, 264, 223, 221, 291, 263, 217, 287, 368, 330, 268, 181, 461, 213, 186, 226, 201, 182, 355, 208, 202, 181, 364, 439, 393, 200, 192, 347, 288, 215, 280, 248, 176, 457, 217, 184, 275, 195, 230, 194, 230, 216, 337, 204, 290, 190, 276, 215, 196, 226, 244, 280, 238, 216, 280, 184, 267, 206, 206, 324, 194, 191, 278, 227, 183, 188, 288, 300, 200, 216, 377, 189, 207, 257, 315, 184, 244, 193, 186, 226, 215, 198, 221, 290, 224, 233, 196, 282, 197, 210, 229, 193, 226, 191, 192, 186, 223, 237, 366, 190, 203, 239, 218, 251, 298, 294, 210, 195, 193, 276, 180, 176, 185, 471, 244, 202, 290, 187, 200, 192, 322, 206, 266, 380, 228, 281, 180, 198, 207, 290, 323, 247, 334, 211, 321, 234, 350, 188, 195, 219, 286, 443, 407, 222, 230, 262, 424, 339, 390, 263, 290, 372, 184, 182, 241, 206, 210, 206, 204, 372, 219, 227, 224, 196, 184, 201, 201, 206, 271, 184, 326, 348, 246, 281, 298, 293, 198, 184, 211, 338, 333, 276, 489, 318, 257, 199, 293, 276, 246, 194, 227, 316, 183, 259, 365, 270, 425, 177, 268, 284, 316, 190, 197, 192, 239, 227, 253, 299, 211, 333, 293, 290, 400, 355, 186, 415, 230, 406, 307, 221, 184, 191, 292, 218, 188, 212, 375, 244, 309, 420, 378, 193, 335, 233, 428, 189, 198, 202, 211, 184, 186, 251, 197, 320, 191, 190, 235, 188, 218, 197, 213, 228, 238, 278, 255, 220, 239, 478, 316, 200, 269, 270, 209, 185, 186, 195, 212, 183, 327, 200, 277, 212, 425, 236, 232, 255, 219, 245, 234, 239, 244, 254, 296, 246, 198, 198, 200, 327, 238, 197, 297, 291, 247, 333, 381, 236, 191, 243, 290, 187, 381, 258, 177, 191, 328, 282, 311, 223, 243, 215, 435, 186, 235, 244, 245, 332, 419, 266, 240, 179, 216, 287, 252, 189, 189, 188, 210, 186, 221, 183, 224, 355, 225, 208, 215, 232, 208, 398, 313, 310, 194, 299, 263, 285, 282, 199, 287, 275, 196, 206, 195, 309, 187, 243, 243, 186, 284, 188, 304, 197, 190, 306, 180, 249, 266, 246, 205, 229, 416, 380, 267, 337, 346, 306, 194, 294, 348, 185, 357, 185, 326, 258, 265, 238, 200, 258, 213, 199, 351, 185, 317, 216, 373, 261, 204, 183, 269, 254, 281, 356, 272, 243, 362, 382, 203, 188, 232, 292, 264, 205, 235, 202, 199, 243, 379, 291, 251, 251, 224, 197, 492, 229, 193, 378, 260, 298, 332, 245, 244, 191, 385, 194, 347, 192, 223, 210, 196, 186, 280, 229, 237, 197, 381, 196, 243, 369, 206, 257, 295, 218, 223, 206, 379, 195, 233, 201, 261, 231, 235, 215, 194, 185, 212, 339, 221, 229, 368, 218, 219, 219, 269, 306, 227, 213, 252, 285, 191, 242, 212, 186, 191, 263, 272, 231, 199, 222, 244, 204, 208, 255, 237, 280, 199, 309, 218, 423, 225, 231, 192, 191, 365, 189, 322, 227, 238, 204, 181, 246, 220, 277, 234, 355, 208, 231, 188, 210, 202, 209, 224, 235, 382, 326, 228, 236, 193, 280, 192, 269, 381, 195, 249, 189, 363, 205, 275, 189, 206, 289, 234, 333, 283, 374, 201, 230, 281, 304, 364, 199, 183, 181, 416, 202, 192, 293, 204, 248, 191, 189, 313, 183, 293, 269, 319, 302, 249, 198, 354, 243, 186, 184, 216, 224, 264, 289, 246, 213, 225, 214, 192, 191, 457, 279, 239, 297, 248, 294, 229, 300, 302, 178, 312, 246, 255, 235, 214, 211, 261, 304, 200, 363, 226, 187, 312, 328, 387, 195, 270, 199, 269, 198, 220, 260, 215, 192, 246, 206, 202, 262, 345, 274, 295, 246, 262, 444, 309, 230, 310, 197, 202, 302, 323, 224, 428, 210, 186, 335, 243, 254, 212, 333, 300, 222, 386, 215, 239, 416, 200, 232, 302, 260, 332, 195, 187, 334, 193, 187, 251, 193, 190, 413, 381, 449, 223, 194, 184, 304, 296, 203, 386, 197, 251, 225, 198, 199, 241, 203, 184, 272, 324, 351, 284, 221, 199, 287, 236, 283, 235, 185, 194, 199, 284, 206, 184, 208, 183, 192, 178, 241, 234, 250, 217, 217, 403, 401, 354, 271, 192, 259, 323, 224, 245, 195, 212, 207, 191, 284, 212, 213, 338, 203, 336, 190, 182, 367, 262, 343, 180, 194, 281, 313, 211, 228, 223, 254, 251, 274, 186, 356, 190, 368, 304, 220, 322, 208, 194, 190, 279, 187, 408, 216, 212, 185, 275, 255, 244, 341, 276, 210, 346, 216, 243, 276, 255, 333, 367, 203, 187, 346, 203, 218, 375, 204, 183, 219, 365, 186, 251, 215, 281, 222, 224, 197, 214, 232, 256, 400, 328, 321, 205, 288, 263, 344, 204, 250, 196, 186, 265, 325, 204, 203, 237, 186, 272, 196, 276, 321, 189, 208, 217, 232, 474, 222, 212, 232, 382, 233, 225, 336, 285, 195, 199, 458, 391, 285, 234, 233, 184, 215, 220, 265, 322, 417, 180, 197, 208, 242, 431, 301, 197, 196, 207, 179, 278, 189, 294, 228, 223, 328, 200, 296, 283, 333, 208, 232, 182, 311, 238, 181, 195, 196, 229, 242, 199, 236, 219, 234, 193, 229, 433, 269, 245, 229, 237, 290, 223, 233, 192, 198, 231, 186, 244, 205, 195, 288, 379, 188, 180, 246, 186, 270, 212, 181, 186, 213, 187, 252, 324, 217, 201, 249, 322, 257, 234, 198, 226, 254, 416, 208, 385, 300, 206, 228, 185, 246, 190, 275, 225, 220, 211, 273, 244, 410, 258, 192, 216, 358, 206, 329, 360, 183, 245, 245, 282, 253, 314, 304, 217, 292, 205, 203, 262, 193, 401, 211, 203, 377, 190, 222, 224, 227, 182, 247, 238, 278, 201, 234, 224, 279, 238, 221, 177, 191, 227, 371, 292, 203, 221, 230, 233, 342, 285, 193, 279, 363, 295, 281, 244, 239, 250, 211, 245, 290, 261, 310, 184, 431, 215, 235, 282, 198, 259, 207, 219, 215, 391, 201, 200, 186, 304, 198, 209, 297, 281, 180, 182, 211, 298, 233, 183, 284, 222, 241, 194, 289, 188, 316, 212, 192, 195, 200, 413, 357, 397, 263, 198, 313, 309, 330, 181, 218, 300, 232, 224, 282, 184, 204, 222, 189, 246, 187, 264, 238, 288, 239, 193, 200, 257, 179, 210, 208, 191, 342, 256, 274, 247, 304, 308, 189, 193, 204, 202, 283, 297, 216, 273, 230, 260, 192, 290, 436, 181, 258, 219, 324, 219, 264, 412, 241, 204, 188, 193, 228, 228, 217, 206, 268, 323, 193, 251, 197, 241, 207, 180, 189, 230, 357, 200, 284, 228, 288, 332, 212, 468, 209, 257, 260, 336, 182, 181, 195, 345, 373, 291, 310, 203, 187, 248, 205, 242, 180, 265, 209, 205, 221, 238, 204, 227, 279, 255, 217, 302, 322, 313, 180, 210, 339, 286, 206, 181, 253, 245, 185, 221, 356, 225, 294, 341, 219, 334, 219, 236, 294, 206, 291, 400, 202, 329, 228, 296, 418, 274, 203, 397, 198, 314, 314, 181, 350, 198, 292, 189, 209, 191, 200, 192, 444, 275, 221, 371, 310, 305, 237, 297, 307, 211, 193, 242, 225, 292, 401, 189, 313, 312, 351, 247, 338, 216, 368, 296, 209, 228, 284, 220, 275, 226, 270, 218, 359, 228, 192, 301, 279, 245, 197, 315, 196, 223, 296, 220, 226, 227, 234, 201, 314, 323, 249, 199, 202, 204, 331, 203, 326, 243, 260, 269, 259, 258, 184, 243, 201, 247, 183, 182, 224, 305, 201, 310, 295, 188, 184, 299, 246, 201, 185, 404, 235, 283, 297, 180, 393, 228, 241, 243, 269, 182, 208, 415, 206, 185, 302, 191, 296, 362, 266, 326, 457, 386, 197, 178, 300, 279, 265, 183, 228, 195, 218, 200, 345, 434, 266, 370, 194, 184, 208, 211, 190, 393, 419, 213, 189, 246, 240, 409, 191, 199, 401, 183, 199, 199, 320, 253, 211, 184, 283, 192, 234, 198, 241, 297, 448, 187, 199, 300, 180, 227, 198, 313, 203, 203, 255, 320, 209, 198, 349, 191, 183, 338, 279, 206, 202, 218, 230, 329, 255, 189, 320, 213, 193, 188, 278, 213, 183, 231, 219, 230, 219, 278, 211, 379, 229, 184, 241, 203, 199, 216, 184, 192, 247, 333, 226, 496, 241, 251, 227, 294, 283, 376, 207, 279, 185, 410, 233, 206, 199, 213, 200, 283, 353, 462, 462, 306, 191, 190, 196, 192, 246, 211, 204, 223, 352, 383, 250, 212, 212, 197, 203, 211, 252, 186, 191, 259, 333, 189, 195, 236, 220, 207, 208, 244, 242, 406, 208, 315, 336, 206, 320, 194, 298, 375, 236, 307, 201, 305, 180, 188, 317, 180, 197, 356, 192, 192, 234, 197, 249, 218, 321, 237, 301, 203, 183, 221, 222, 196, 435, 245, 260, 185, 203, 228, 181, 263, 195, 204, 226, 194, 187, 429, 187, 292, 189, 204, 247, 206, 182, 213, 205, 179, 243, 390, 208, 226, 182, 198, 233, 282, 194, 213, 352, 283, 189, 201, 189, 206, 189, 191, 238, 194, 234, 185, 276, 189, 207, 202, 228, 220, 219, 309, 317, 201, 207, 253, 223, 265, 320, 179, 220, 199, 295, 201, 394, 265, 253, 237, 283, 254, 228, 202, 475, 267, 185, 193, 223, 254, 310, 408, 292, 185, 299, 292, 224, 295, 209, 244, 199, 224, 180, 272, 194, 210, 380, 199, 213, 286, 233, 366, 249, 234, 216, 310, 227, 389, 272, 219, 197, 195, 334, 210, 250, 225, 206, 257, 248, 270, 342, 243, 287, 187, 203, 264, 212, 311, 331, 379, 309, 209, 303, 202, 275, 205, 186, 281, 218, 228, 252, 292, 348, 199, 282, 186, 326, 294, 214, 436, 192, 183, 208, 197, 218, 359, 224, 223, 209, 240, 228, 220, 205, 226, 334, 182, 256, 184, 268, 192, 235, 230, 198, 182, 282, 272, 189, 191, 409, 239, 289, 233, 329, 236, 253, 262, 192, 191, 268, 212, 195, 203, 317, 268, 206, 181, 232, 243, 370, 222, 221, 448, 288, 179, 356, 307, 187, 209, 195, 283, 177, 192, 240, 187, 240, 234, 186, 181, 303, 281, 177, 312, 229, 198, 233, 287, 254, 183, 437, 342, 205, 429, 230, 208, 438, 228, 211, 197, 197, 192, 200, 232, 264, 297, 208, 276, 197, 206, 202, 205, 184, 200, 195, 205, 187, 207, 234, 260, 210, 180, 259, 244, 208, 409, 194, 200, 196, 184, 286, 204, 180, 206, 254, 198, 205, 188, 270, 210, 388, 373, 205, 257, 193, 191, 249, 189, 352, 290, 236, 290, 214, 347, 246, 193, 295, 259, 245, 183, 200, 220, 248, 291, 299, 410, 195, 239, 190, 294, 248, 300, 224, 186, 188, 380, 235, 241, 185, 240, 191, 232, 381, 316, 345, 248, 184, 188, 193, 188, 249, 383, 227, 457, 259, 374, 259, 201, 306, 405, 218, 195, 220, 209, 230, 253, 180, 219, 208, 195, 301, 205, 211, 199, 187, 218, 349, 237, 331, 198, 195, 354, 212, 247, 324, 280, 191, 196, 181, 252, 186, 179, 234, 428, 278, 214, 206, 202, 321, 218, 187, 338, 235, 214, 191, 215, 196, 285, 189, 204, 202, 242, 330, 204, 211, 223, 209, 309, 384, 203, 203, 244, 351, 375, 301, 181, 181, 180, 239, 192, 254, 238, 215, 187, 300, 292, 203, 257, 189, 215, 347, 324, 272, 218, 355, 232, 322, 445, 265, 313, 320, 238, 355, 202, 187, 322, 234, 198, 351, 187, 302, 493, 224, 186, 227, 297, 194, 246, 244, 197, 256, 274, 234, 182, 349, 249, 239, 344, 198, 344, 180, 183, 185, 191, 294, 213, 185, 349, 240, 231, 254, 257, 320, 181, 206, 185, 259, 207, 187, 197, 215, 187, 269, 216, 268, 220, 303, 320, 239, 195, 253, 198, 213, 178, 190, 464, 278, 226, 184, 225, 465, 240, 177, 191, 241, 203, 183, 279, 249, 259, 204, 210, 227, 182, 200, 271, 223, 270, 308, 284, 177, 214, 216, 222, 202, 323, 313, 190, 293, 217, 278, 212, 200, 272, 183, 190, 279, 185, 221, 291, 234, 207, 249, 299, 259, 208, 202, 392, 244, 330, 317, 198, 237, 361, 250, 200, 186, 211, 193, 435, 282, 320, 292, 243, 186, 181, 193, 232, 184, 496, 196, 256, 251, 198, 195, 190, 272, 239, 240, 300, 220, 225, 260, 187, 204, 190, 191, 177, 246, 369, 258, 299, 337, 192, 234, 193, 211, 188, 215, 266, 413, 475, 288, 227, 379, 223, 194, 264, 214, 368, 200, 214, 234, 293, 193, 191, 290, 210, 442, 215, 284, 218, 204, 339, 459, 227, 211, 187, 258, 363, 280, 197, 186, 257, 300, 197, 267, 219, 304, 186, 185, 451, 269, 223, 192, 389, 187, 195, 207, 254, 286, 260, 249, 283, 348, 372, 182, 205, 191, 240, 330, 233, 225, 189, 249, 283, 265, 188, 215, 289, 214, 179, 190, 196, 193, 279, 268, 272, 193, 215, 205, 330, 270, 237, 238, 194, 294, 188, 283, 227, 241, 328, 223, 240, 257, 252, 179, 258, 499, 189, 217, 244, 200, 247, 191, 314, 219, 304, 198, 297, 237, 274, 279, 211, 365, 200, 232, 190, 226, 369, 189, 238, 190, 313, 198, 355, 209, 178, 350, 272, 183, 193, 243, 206, 210, 207, 349, 199, 228, 223, 193, 292, 218, 194, 239, 187, 241, 241, 189, 192, 203, 319, 297, 199, 205, 294, 223, 211, 243, 202, 303, 219, 275, 225, 229, 427, 180, 251, 213, 368, 274, 205, 219, 194, 258, 206, 185, 331, 187, 225, 247, 182, 203, 307, 311, 266, 186, 316, 218, 270, 287, 236, 206, 187, 281, 256, 277, 251, 221, 195, 189, 213, 205, 298, 194, 186, 185, 290, 286, 262, 342, 192, 202, 204, 282, 360, 267, 267, 216, 189, 196, 201, 211, 278, 349, 345, 254, 326, 284, 341, 268, 200, 323, 200, 215, 248, 213, 319, 260, 193, 192, 186, 198, 360, 441, 235, 203, 226, 268, 181, 269, 221, 309, 298, 235, 214, 191, 347, 232, 217, 299, 222, 376, 243, 194, 201, 197, 240, 307, 190, 265, 277, 271, 264, 394, 237, 399, 214, 296, 216, 197, 198, 302, 206, 216, 249, 306, 267, 253, 200, 238, 215, 300, 291, 202, 381, 217, 191, 203, 407, 204, 214, 192, 305, 406, 195, 219, 229, 195, 285, 222, 251, 251, 199, 294, 353, 210, 260, 178, 282, 242, 278, 292, 237, 196, 248, 187, 207, 367, 197, 229, 209, 236, 196, 224, 257, 197, 261, 286, 196, 184, 181, 185, 246, 200, 211, 253, 201, 188, 237, 201, 191, 257, 247, 211, 221, 280, 406, 205, 201, 187, 207, 196, 207, 218, 306, 208, 205, 223, 185, 215, 300, 209, 212, 223, 255, 291, 278, 205, 192, 245, 340, 224, 224, 300, 321, 211, 212, 206, 189, 273, 296, 184, 206, 369, 197, 253, 214, 239, 325, 216, 194, 457, 210, 197, 284, 182, 199, 362, 196, 259, 217, 279, 209, 179, 366, 253, 367, 237, 205, 354, 225, 236, 251, 327, 259, 246, 356, 361, 368, 220, 263, 184, 406, 438, 207, 329, 227, 249, 186, 207, 235, 211, 193, 404, 212, 199, 300, 206, 186, 274, 393, 243, 319, 311, 255, 179, 332, 183, 184, 227, 228, 249, 373, 212, 243, 191, 211, 282, 284, 226, 191, 194, 219, 200, 232, 222, 185, 229, 287, 236, 204, 179, 212, 190, 450, 205, 222, 240, 447, 253, 187, 297, 254, 303, 193, 295, 393, 207, 188, 188, 278, 384, 342, 180, 199, 198, 196, 195, 264, 226, 235, 205, 204, 223, 189, 220, 285, 324, 214, 190, 303, 186, 183, 261, 218, 242, 212, 309, 287, 370, 182, 231, 210, 191, 351, 321, 183, 285, 245, 206, 482, 235, 482, 215, 249, 262, 370, 191, 182, 229, 185, 203, 215, 187, 256, 191, 252, 239, 179, 379, 242, 340, 215, 238, 258, 394, 267, 226, 216, 308, 461, 263, 230, 295, 245, 188, 363, 265, 200, 273, 200, 221, 182, 291, 231, 204, 181, 263, 198, 339, 226, 227, 213, 184, 199, 296, 271, 217, 192, 194, 417, 206, 243, 200, 225, 204, 301, 190, 382, 196, 193, 252, 296, 198, 237, 185, 396, 292, 263, 213, 228, 215, 208, 224, 241, 192, 196, 273, 231, 207, 216, 183, 239, 233, 315, 351, 279, 283, 191, 291, 245, 199, 223, 285, 283, 186, 184, 239, 491, 187, 282, 252, 194, 184, 203, 194, 199, 287, 237, 315, 182, 204, 206, 178, 279, 217, 233, 213, 273, 196, 441, 185, 231, 225, 218, 387, 293, 243, 317, 186, 278, 242, 278, 261, 208, 192, 253, 315, 188, 309, 211, 254, 229, 186, 232, 221, 221, 277, 195, 306, 235, 218, 194, 204, 210, 252, 208, 268, 229, 188, 260, 284, 263, 177, 259, 197, 212, 230, 247, 205, 206, 404, 187, 187, 178, 217, 262, 259, 263, 237, 243, 309, 219, 270, 199, 312, 187, 270, 296, 366, 216, 212, 321, 213, 301, 184, 223, 236, 203, 269, 198, 231, 221, 209, 388, 203, 271, 186, 226, 273, 220, 214, 188, 250, 258, 416, 239, 178, 377, 222, 188, 248, 184, 192, 215, 202, 275, 300, 198, 300, 256, 261, 290, 186, 244, 209, 185, 239, 202, 223, 283, 353, 194, 213, 192, 198, 372, 257, 339, 178, 188, 185, 190, 333, 281, 195, 194, 196, 209, 289, 339, 184, 184, 195, 202, 323, 308, 177, 209, 294, 351, 308, 254, 340, 275, 331, 271, 339, 248, 289, 188, 335, 255, 394, 199, 221, 206, 207, 192, 238, 193, 204, 233, 232, 211, 256, 208, 280, 273, 291, 219, 194, 191, 318, 238, 184, 216, 294, 193, 185, 241, 184, 211, 223, 192, 196, 223, 280, 315, 211, 189, 207, 212, 412, 430, 237, 190, 200, 187, 221, 219, 308, 208, 221, 207, 196, 214, 213, 192, 207, 295, 197, 177, 374, 329, 271, 202, 194, 338, 192, 239, 180, 348, 196, 299, 274, 264, 291, 273, 222, 309, 188, 276, 302, 247, 201, 202, 213, 180, 177, 211, 311, 244, 200, 239, 369, 374, 363, 253, 253, 308, 195, 243, 283, 216, 260, 180, 240, 248, 211, 238, 201, 276, 187, 225, 299, 179, 238, 387, 181, 263, 266, 223, 312, 228, 266, 185, 193, 242, 199, 350, 205, 247, 288, 191, 395, 222, 274, 307, 198, 195, 304, 291, 361, 209, 332, 263, 229, 242, 217, 217, 187, 183, 271, 192, 216, 210, 303, 202, 246, 278, 305, 331, 253, 184, 312, 277, 194, 249, 218, 286, 261, 181, 231, 298, 184, 183, 257, 225, 234, 326, 319, 401, 193, 261, 210, 190, 278, 194, 195, 267, 194, 352, 222, 304, 304, 211, 289, 240, 354, 198, 349, 356, 265, 261, 274, 198, 197, 257, 210, 255, 186, 345, 213, 200, 478, 193, 283, 223, 292, 462, 203, 188, 190, 206, 230, 195, 193, 223, 327, 187, 224, 270, 252, 322, 304, 288, 272, 247, 182, 226, 197, 223, 195, 209, 204, 196, 192, 306, 206, 401, 400, 215, 202, 222, 180, 212, 184, 181, 228, 189, 288, 307, 260, 226, 198, 259, 189, 206, 201, 221, 239, 383, 229, 184, 257, 285, 236, 243, 252, 308, 203, 217, 244, 319, 328, 220, 363, 258, 190, 290, 195, 391, 240, 233, 222, 264, 313, 293, 180, 268, 219, 334, 251, 183, 285, 184, 203, 314, 188, 263, 211, 236, 222, 256, 256, 199, 300, 200, 199, 186, 235, 197, 216, 212, 302, 272, 232, 187, 406, 305, 200, 305, 184, 192, 315, 307, 351, 294, 283, 267, 181, 340, 182, 203, 263, 344, 244, 188, 199, 410, 365, 260, 249, 254, 258, 402, 215, 198, 341, 278, 358, 253, 181, 193, 307, 211, 200, 260, 191, 193, 252, 320, 241, 366, 213, 296, 205, 184, 306, 499, 307, 199, 442, 295, 187, 219, 224, 234, 238, 238, 221, 367, 237, 282, 259, 190, 209, 183, 228, 266, 213, 275, 246, 358, 318, 192, 208, 187, 208, 231, 270, 190, 210, 194, 288, 276, 297, 228, 233, 223, 203, 318, 210, 218, 416, 425, 207, 213, 187, 255, 263, 182, 250, 208, 372, 313, 179, 400, 359, 188, 191, 415, 204, 276, 187, 204, 241, 412, 367, 195, 295, 277, 272, 187, 220, 211, 198, 201, 250, 294, 310, 269, 220, 238, 272, 177, 177, 273, 204, 185, 214, 238, 264, 227, 330, 341, 341, 226, 191, 187, 453, 182, 204, 250, 286, 188, 208, 180, 220, 206, 369, 236, 189, 370, 414, 188, 288, 206, 250, 241, 248, 186, 392, 182, 398, 394, 291, 346, 196, 364, 330, 210, 235, 213, 268, 211, 300, 281, 189, 263, 193, 205, 300, 186, 198, 216, 246, 288, 236, 299, 194, 200, 181, 220, 300, 232, 235, 235, 318, 311, 300, 284, 211, 289, 200, 325, 270, 219, 282, 180, 183, 258, 191, 196, 216, 206, 230, 185, 226, 192, 229, 323, 324, 268, 240, 204, 281, 411, 422, 356, 272, 192, 312, 182, 278, 250, 180, 296, 409, 237, 409, 305, 283, 193, 186, 242, 184, 232, 266, 257, 197, 284, 214, 228, 203, 194, 275, 206, 265, 238, 223, 314, 179, 215, 280, 359, 208, 205, 193, 240, 200, 243, 346, 357, 183, 404, 201, 354, 269, 399, 260, 207, 407, 292, 376, 183, 229, 194, 198, 192, 263, 327, 216, 281, 247, 295, 254, 187, 274, 447, 208, 437, 189, 205, 366, 243, 234, 232, 217, 353, 406, 203, 192, 191, 203, 223, 195, 293, 263, 206, 251, 210, 214, 190, 189, 305, 397, 340, 202, 217, 204, 227, 196, 306, 315, 203, 195, 217, 480, 257, 345, 205, 283, 316, 192, 295, 230, 453, 200, 206, 235, 206, 194, 204, 307, 191, 207, 364, 237, 181, 185, 211, 207, 204, 344, 204, 268, 247, 232, 326, 198, 214, 193, 203, 427, 260, 385, 301, 186, 313, 399, 242, 179, 233, 262, 189, 191, 192, 278, 189, 197, 210, 277, 186, 382, 230, 274, 189, 305, 256, 237, 266, 180, 321, 210, 257, 239, 267, 218, 258, 196, 249, 312, 244, 444, 287, 202, 200, 189, 268, 281, 263, 288, 260, 199, 190, 208, 393, 190, 185, 207, 212, 251, 315, 275, 180, 223, 200, 197, 189, 386, 335, 407, 194, 313, 297, 335, 272, 308, 265, 460, 201, 260, 185, 290, 224, 186, 222, 333, 382, 319, 277, 180, 237, 229, 230, 347, 353, 272, 181, 212, 214, 234, 196, 482, 191, 252, 233, 193, 277, 370, 229, 207, 276, 241, 188, 220, 207, 205, 196, 204, 198, 228, 194, 246, 368, 202, 332, 341, 284, 212, 257, 292, 324, 194, 209, 180, 337, 224, 190, 244, 230, 194, 239, 250, 196, 409, 185, 229, 203, 268, 225, 358, 245, 213, 233, 224, 190, 209, 258, 288, 462, 204, 218, 189, 291, 203, 183, 233, 228, 247, 331, 225, 264, 196, 367, 242, 491, 202, 250, 193, 287, 193, 331, 231, 281, 385, 219, 236, 250, 181, 178, 239, 301, 256, 213, 304, 196, 182, 262, 233, 203, 235, 232, 208, 254, 346, 200, 230, 209, 334, 197, 331, 228, 222, 188, 193, 180, 194, 227, 303, 181, 207, 192, 195, 264, 320, 193, 294, 336, 238, 341, 276, 224, 212, 228, 216, 299, 351, 229, 242, 258, 393, 222, 256, 201, 324, 185, 196, 312, 193, 210, 204, 276, 185, 185, 186, 227, 252, 307, 317, 260, 196, 201, 406, 204, 280, 248, 197, 208, 464, 261, 196, 294, 211, 186, 293, 226, 205, 188, 230, 184, 194, 186, 275, 265, 215, 182, 207, 229, 200, 267, 233, 187, 322, 236, 367, 431, 198, 215, 226, 287, 370, 388, 268, 219, 261, 225, 249, 334, 447, 207, 204, 225, 258, 250, 190, 243, 209, 254, 241, 254, 183, 303, 203, 351, 339, 221, 198, 251, 199, 447, 182, 300, 447, 250, 300, 200, 258, 260, 231, 225, 223, 305, 319, 198, 193, 197, 216, 180, 260, 209, 191, 330, 367, 325, 252, 262, 185, 300, 198, 211, 273, 207, 241, 351, 309, 195, 231, 182, 195, 227, 204, 314, 297, 285, 254, 209, 248, 208, 187, 304, 189, 201, 266, 192, 186, 182, 212, 272, 226, 297, 264, 314, 237, 352, 420, 244, 356, 218, 261, 346, 205, 388, 189, 312, 333, 206, 183, 300, 218, 188, 185, 427, 240, 205, 249, 317, 233, 195, 217, 281, 212, 186, 237, 289, 187, 351, 214, 417, 278, 214, 263, 228, 221, 300, 258, 218, 272, 325, 233, 191, 277, 242, 236, 288, 301, 226, 187, 239, 455, 216, 388, 193, 200, 243, 335, 344, 203, 207, 215, 258, 339, 220, 193, 314, 187, 296, 217, 196, 208, 282, 217, 187, 325, 224, 204, 201, 239, 300, 237, 184, 262, 311, 458, 189, 493, 306, 264, 273, 260, 219, 279, 215, 193, 187, 200, 352, 334, 235, 184, 356, 219, 234, 202, 254, 219, 193, 314, 217, 203, 185, 349, 305, 192, 419, 358, 229, 355, 249, 341, 197, 237, 181, 310, 237, 179, 276, 363, 310, 263, 212, 260, 190, 291, 331, 253, 274, 207, 211, 210, 195, 193, 181, 244, 316, 185, 426, 319, 275, 274, 273, 277, 225, 272, 226, 179, 284, 263, 235, 309, 224, 260, 212, 355, 350, 283, 219, 190, 320, 235, 298, 207, 270, 185, 184, 297, 235, 333, 180, 206, 215, 237, 264, 179, 249, 230, 207, 193, 306, 296, 231, 296, 250, 308, 358, 257, 245, 384, 194, 370, 222, 192, 207, 253, 212, 213, 369, 184, 242, 299, 257, 229, 208, 253, 268, 202, 185, 385, 229, 228, 266, 401, 218, 230, 190, 201, 230, 186, 372, 194, 218, 388, 187, 206, 359, 190, 191, 223, 191, 234, 215, 251, 319, 389, 247, 273, 196, 199, 260, 267, 351, 240, 231, 185, 183, 213, 188, 335, 187, 359, 225, 204, 319, 245, 223, 207, 225, 180, 198, 253, 183, 241, 422, 256, 195, 191, 215, 191, 430, 253, 205, 211, 202, 220, 296, 235, 331, 274, 444, 262, 190, 197, 225, 210, 233, 230, 187, 211, 230, 267, 201, 240, 311, 190, 190, 253, 254, 193, 255, 258, 208, 272, 196, 219, 200, 211, 181, 185, 276, 234, 202, 253, 209, 191, 194, 279, 228, 228, 234, 204, 268, 224, 281, 179, 243, 186, 207, 254, 238, 200, 242, 299, 222, 213, 267, 256, 317, 355, 286, 225, 237, 211, 182, 245, 284, 266, 194, 185, 338, 222, 182, 192, 232, 300, 191, 259, 421, 356, 280, 285, 232, 349, 237, 191, 314, 211, 257, 241, 209, 224, 218, 205, 188, 181, 178, 189, 180, 234, 184, 189, 202, 265, 199, 297, 338, 209, 205, 199, 201, 183, 280, 267, 198, 319, 231, 207, 397, 209, 235, 200, 193, 188, 467, 205, 327, 228, 262, 191, 228, 204, 249, 180, 208, 215, 251, 203, 217, 247, 245, 219, 197, 355, 190, 232, 361, 352, 196, 309, 395, 246, 244, 203, 236, 321, 292, 230, 180, 228, 238, 299, 185, 217, 244, 182, 370, 184, 313, 255, 413, 207, 367, 288, 201, 232, 232, 228, 213, 238, 307, 280, 209, 308, 220, 222, 225, 275, 211, 306, 217, 267, 189, 281, 273, 186, 201, 203, 196, 279, 260, 277, 216, 208, 203, 207, 187, 235, 213, 216, 208, 286, 201, 343, 211, 189, 204, 355, 204, 259, 278, 212, 254, 285, 186, 195, 219, 193, 195, 187, 291, 307, 236, 258, 273, 210, 305, 201, 241, 194, 220, 275, 189, 240, 177, 359, 221, 230, 196, 181, 225, 266, 181, 201, 470, 325, 178, 198, 350, 311, 213, 315, 263, 242, 285, 186, 213, 180, 189, 180, 324, 493, 296, 217, 380, 200, 243, 402, 260, 271, 204, 192, 239, 227, 295, 316, 257, 234, 376, 227, 232, 255, 315, 328, 250, 201, 283, 199, 181, 194, 203, 216, 213, 376, 216, 197, 387, 185, 182, 221, 194, 238, 225, 238, 265, 276, 236, 238, 200, 261, 268, 196, 244, 413, 248, 193, 215, 247, 298, 238, 224, 230, 215, 338, 268, 259, 240, 215, 209, 194, 407, 200, 285, 229, 313, 330, 297, 188, 264, 241, 396, 206, 399, 417, 226, 244, 277, 183, 213, 233, 209, 239, 279, 235, 285, 266, 292, 194, 201, 260, 255, 214, 258, 255, 273, 265, 209, 198, 363, 410, 213, 249, 185, 187, 329, 207, 196, 336, 338, 217, 298, 203, 224, 199, 188, 214, 244, 187, 247, 229, 214, 254, 343, 182, 224, 229, 200, 230, 235, 240, 232, 195, 186, 202, 241, 202, 181, 269, 256, 318, 242, 264, 204, 293, 307, 337, 192, 221, 231, 197, 216, 275, 205, 321, 206, 248, 200, 469, 274, 238, 195, 205, 183, 222, 412, 335, 223, 210, 226, 208, 341, 198, 339, 298, 428, 248, 183, 214, 224, 319, 219, 387, 233, 213, 297, 257, 214, 204, 252, 404, 290, 388, 301, 185, 263, 184, 198, 228, 190, 294, 235, 226, 207, 280, 197, 356, 322, 257, 217, 287, 239, 215, 267, 208, 214, 179, 204, 204, 202, 201, 373, 178, 210, 371, 228, 336, 236, 226, 184, 339, 218, 348, 187, 183, 203, 221, 254, 222, 347, 198, 200, 200, 207, 246, 301, 401, 224, 301, 212, 216, 196, 445, 314, 267, 186, 215, 255, 204, 271, 210, 296, 265, 281, 323, 210, 223, 219, 259, 187, 347, 219, 236, 209, 232, 491, 206, 197, 262, 190, 223, 264, 190, 244, 293, 177, 258, 286, 241, 282, 227, 329, 209, 191, 186, 264, 237, 326, 304, 208, 200, 212, 347, 181, 196, 337, 202, 200, 229, 261, 259, 310, 278, 268, 441, 253, 318, 329, 233, 252, 226, 229, 204, 258, 385, 316, 311, 258, 228, 204, 212, 209, 205, 215, 195, 227, 209, 242, 287, 206, 207, 301, 287, 198, 248, 403, 340, 191, 215, 230, 208, 411, 400, 216, 190, 409, 197, 243, 183, 260, 204, 469, 324, 200, 221, 186, 195, 206, 269, 416, 256, 179, 182, 271, 322, 237, 261, 293, 294, 349, 214, 247, 318, 222, 220, 281, 186, 201, 228, 194, 232, 292, 264, 194, 184, 217, 234, 499, 272, 195, 386, 255, 328, 181, 276, 208, 201, 198, 255, 233, 269, 224, 270, 316, 377, 203, 282, 227, 203, 215, 325, 220, 193, 177, 208, 196, 216, 246, 206, 194, 228, 184, 224, 182, 191, 263, 225, 320, 198, 180, 285, 253, 244, 257, 197, 221, 218, 288, 188, 334, 265, 201, 192, 201, 241, 183, 187, 211, 187, 219, 471, 191, 252, 241, 256, 221, 203, 283, 294, 200, 263, 230, 194, 218, 184, 194, 191, 222, 282, 198, 239, 237, 182, 224, 301, 193, 381, 197, 246, 191, 202, 210, 277, 313, 187, 426, 222, 344, 252, 277, 230, 230, 202, 322, 225, 280, 303, 215, 273, 308, 260, 323, 317, 180, 365, 316, 272, 186, 251, 197, 255, 259, 195, 182, 193, 212, 294, 213, 252, 251, 358, 268, 196, 219, 183, 473, 288, 273, 195, 311, 214, 252, 237, 222, 207, 211, 190, 180, 289, 364, 432, 238, 182, 210, 200, 230, 325, 287, 292, 207, 231, 187, 286, 388, 304, 192, 200, 245, 180, 276, 222, 253, 221, 185, 184, 184, 194, 247, 202, 247, 223, 297, 372, 387, 257, 224, 216, 357, 186, 207, 192, 183, 273, 223, 272, 250, 179, 274, 258, 189, 298, 194, 196, 274, 245, 189, 250, 209, 255, 255, 228, 182, 335, 218, 183, 215, 291, 201, 316, 271, 266, 374, 230, 202, 210, 379, 247, 254, 230, 267, 265, 184, 183, 203, 207, 242, 212, 192, 247, 287, 175, 187, 272, 286, 216, 362, 265, 195, 197, 241, 187, 240, 201, 365, 214, 181, 190, 183, 289, 196, 264, 272, 221, 200, 195, 257, 270, 233, 196, 184, 197, 298, 280, 358, 190, 331, 212, 184, 395, 180, 199, 196, 221, 197, 258, 182, 239, 253, 198, 205, 256, 321, 265, 300, 202, 237, 331, 233, 196, 232, 198, 224, 233, 386, 261, 239, 184, 230, 199, 251, 252, 206, 239, 287, 232, 190, 372, 288, 199, 179, 299, 216, 201, 217, 186, 380, 215, 215, 246, 239, 291, 279, 207, 279, 210, 221, 334, 314, 352, 338, 194, 212, 223, 209, 226, 200, 227, 265, 207, 226, 250, 258, 226, 261, 211, 213, 316, 292, 243, 319, 233, 195, 241, 215, 265, 190, 228, 267, 248, 191, 198, 259, 275, 291, 287, 190, 190, 183, 197, 215, 186, 197, 275, 255, 225, 367, 224, 340, 303, 232, 184, 206, 189, 301, 291, 300, 342, 290, 179, 314, 193, 188, 221, 205, 220, 350, 199, 306, 180, 209, 310, 214, 192, 283, 205, 222, 200, 245, 315, 189, 244, 192, 197, 339, 302, 307, 343, 215, 197, 288, 223, 300, 272, 222, 266, 228, 254, 227, 396, 310, 211, 269, 263, 197, 191, 286, 238, 229, 264, 287, 188, 207, 282, 288, 374, 246, 192, 202, 203, 195, 289, 197, 268, 218, 350, 289, 219, 206, 223, 203, 228, 227, 310, 188, 313, 212, 207, 260, 233, 330, 223, 192, 257, 312, 213, 187, 312, 215, 206, 333, 219, 375, 191, 246, 223, 196, 260, 412, 193, 228, 254, 411, 267, 189, 311, 201, 219, 302, 368, 210, 214, 184, 183, 215, 215, 318, 210, 320, 258, 224, 384, 263, 415, 208, 282, 198, 197, 275, 188, 309, 425, 242, 244, 193, 242, 336, 195, 392, 280, 247, 503, 310, 238, 196, 301, 310, 416, 286, 193, 205, 247, 205, 216, 238, 179, 258, 180, 209, 361, 256, 251, 297, 235, 195, 277, 203, 222, 189, 220, 253, 479, 205, 240, 262, 223, 249, 200, 181, 183, 349, 244, 229, 332, 458, 438, 325, 269, 193, 179, 242, 185, 489, 359, 207, 310, 276, 267, 245, 223, 254, 192, 243, 196, 183, 211, 193, 227, 387, 237, 411, 190, 240, 193, 186, 185, 209, 184, 202, 346, 234, 284, 264, 242, 232, 201, 214, 350, 192, 189, 209, 179, 237, 189, 181, 189, 188, 287, 301, 341, 233, 261, 355, 315, 213, 211, 206, 235, 247, 204, 196, 193, 262, 293, 203, 185, 234, 183, 311, 198, 288, 318, 201, 246, 200, 191, 317, 198, 224, 266, 182, 231, 317, 188, 379, 250, 262, 214, 426, 210, 253, 215, 475, 238, 191, 304, 223, 293, 198, 266, 207, 318, 278, 238, 293, 219, 208, 218, 469, 239, 284, 181, 197, 190, 317, 188, 284, 219, 180, 374, 360, 253, 228, 202, 323, 242, 194, 212, 197, 207, 284, 281, 192, 357, 192, 258, 275, 323, 203, 194, 312, 304, 274, 197, 229, 222, 183, 223, 386, 183, 274, 236, 336, 238, 206, 206, 187, 196, 234, 195, 200, 314, 199, 194, 367, 295, 197, 306, 200, 216, 182, 228, 301, 209, 361, 264, 262, 272, 208, 274, 290, 242, 237, 291, 281, 352, 490, 236, 252, 216, 330, 200, 190, 196, 406, 408, 301, 203, 225, 305, 299, 236, 202, 244, 203, 208, 253, 243, 198, 255, 241, 313, 184, 323, 237, 413, 211, 210, 226, 375, 279, 182, 217, 197, 239, 220, 181, 208, 331, 454, 329, 288, 279, 213, 201, 311, 317, 453, 263, 213, 189, 186, 188, 255, 379, 180, 214, 293, 291, 339, 181, 201, 373, 358, 244, 198, 268, 203, 258, 200, 235, 289, 194, 318, 208, 187, 194, 243, 410, 436, 186, 189, 206, 300, 223, 239, 261, 436, 212, 244, 203, 232, 203, 215, 218, 187, 241, 187, 182, 322, 286, 203, 258, 334, 422, 479, 181, 209, 221, 277, 195, 342, 245, 230, 198, 271, 212, 204, 330, 240, 194, 193, 237, 186, 229, 370, 239, 257, 328, 203, 275, 191, 189, 218, 244, 371, 180, 248, 255, 249, 198, 425, 184, 298, 256, 289, 240, 363, 237, 227, 228, 253, 218, 179, 233, 331, 444, 193, 312, 261, 184, 339, 199, 218, 325, 230, 208, 348, 196, 392, 267, 370, 181, 214, 193, 185, 383, 198, 311, 207, 237, 249, 352, 251, 293, 209, 196, 242, 249, 274, 219, 251, 288, 187, 246, 345, 296, 189, 219, 241, 297, 338, 263, 205, 210, 202, 299, 207, 227, 217, 298, 267, 236, 321, 437, 193, 190, 234, 255, 369, 209, 287, 242, 325, 274, 227, 344, 295, 331, 201, 240, 191, 239, 228, 216, 253, 348, 261, 220, 239, 179, 288, 238, 278, 237, 406, 290, 254, 206, 189, 218, 359, 189, 192, 261, 212, 419, 268, 199, 178, 225, 287, 284, 231, 187, 237, 193, 375, 179, 364, 325, 396, 350, 205, 280, 186, 226, 247, 327, 334, 210, 270, 224, 303, 314, 364, 331, 191, 350, 236, 234, 239, 216, 287, 218, 253, 191, 309, 372, 277, 207, 270, 361, 181, 188, 402, 224, 274, 215, 256, 243, 237, 266, 249, 267, 202, 265, 227, 197, 341, 242, 183, 301, 184, 213, 329, 244, 213, 202, 247, 244, 256, 303, 236, 267, 291, 228, 231, 323, 238, 238, 185, 183, 276, 333, 193, 210, 308, 282, 201, 241, 262, 227, 260, 274, 206, 182, 185, 252, 199, 189, 270, 268, 297, 374, 275, 323, 340, 188, 329, 309, 240, 190, 316, 342, 279, 218, 240, 310, 220, 307, 196, 229, 287, 268, 194, 290, 272, 427, 211, 231, 290, 269, 413, 303, 246, 222, 316, 248, 316, 200, 310, 209, 281, 234, 251, 481, 266, 195, 201, 320, 287, 201, 379, 213, 217, 315, 219, 257, 356, 323, 188, 295, 311, 224, 283, 333, 212, 338, 257, 255, 266, 280, 249, 277, 323, 386, 226, 227, 186, 185, 235, 247, 195, 304, 275, 185, 259, 320, 242, 206, 185, 304, 245, 277, 203, 308, 222, 322, 233, 199, 244, 310, 281, 231, 221, 306, 235, 211, 182, 380, 193, 236, 273, 224, 261, 217, 215, 233, 187, 368, 365, 253, 216, 421, 345, 232, 192, 273, 209, 199, 223, 214, 219, 444, 344, 328, 257, 245, 184, 229, 188, 212, 268, 252, 253, 199, 325, 208, 238, 292, 219, 191, 215, 307, 305, 195, 230, 201, 392, 283, 221, 361, 264, 219, 302, 212, 210, 266, 274, 191, 200, 210, 198, 275, 296, 223, 227, 179, 383, 313, 319, 200, 255, 338, 208, 200, 204, 217, 208, 310, 352, 188, 245, 197, 258, 240, 198, 215, 310, 193, 303, 224, 331, 191, 279, 182, 262, 220, 267, 209, 225, 216, 241, 373, 277, 470, 189, 188, 216, 227, 228, 201, 244, 273, 262, 331, 281, 409, 198, 340, 213, 229, 219, 202, 266, 236, 295, 259, 400, 285, 203, 369, 196, 212, 226, 280, 209, 262, 204, 214, 223, 224, 197, 194, 205, 324, 194, 223, 321, 201, 216, 182, 268, 196, 338, 262, 239, 458, 270, 221, 218, 269, 314, 207, 320, 202, 202, 293, 274, 244, 255, 244, 269, 322, 181, 198, 189, 187, 202, 265, 315, 196, 182, 195, 341, 243, 198, 201, 181, 217, 227, 235, 211, 264, 192, 220, 198, 212, 380, 199, 199, 310, 224, 406, 280, 271, 199, 189, 225, 234, 289, 352, 238, 222, 200, 250, 198, 200, 292, 216, 289, 382, 251, 323, 229, 251, 211, 202, 292, 226, 231, 204, 205, 200, 351, 195, 334, 303, 226, 263, 209, 299, 235, 234, 206, 228, 185, 329, 212, 235, 245, 202, 214, 326, 388, 235, 291, 188, 188, 210, 254, 188, 375, 207, 193, 189, 192, 194, 266, 239, 256, 257, 226, 297, 246, 440, 185, 219, 430, 270, 328, 206, 258, 192, 183, 181, 209, 246, 406, 258, 195, 207, 184, 281, 314, 245, 391, 185, 204, 358, 438, 249, 317, 339, 231, 194, 245, 197, 272, 186, 319, 200, 207, 201, 314, 330, 317, 288, 298, 328, 295, 200, 218, 197, 229, 257, 454, 245, 208, 261, 410, 203, 252, 203, 180, 307, 218, 225, 193, 264, 318, 207, 198, 236, 327, 281, 193, 274, 272, 303, 186, 312, 224, 183, 211, 195, 227, 394, 255, 262, 187, 239, 202, 252, 284, 191, 235, 221, 307, 220, 229, 207, 278, 269, 181, 198, 190, 321, 224, 387, 246, 229, 210, 199, 220, 238, 275, 194, 213, 281, 207, 269, 294, 400, 189, 215, 208, 298, 299, 260, 237, 228, 240, 202, 202, 416, 369, 243, 191, 277, 203, 239, 314, 402, 287, 210, 267, 236, 180, 310, 188, 188, 192, 299, 285, 264, 482, 222, 234, 299, 340, 411, 349, 297, 257, 260, 277, 449, 209, 205, 201, 189, 235, 403, 181, 284, 266, 390, 312, 277, 409, 344, 495, 246, 238, 276, 254, 232, 194, 201, 349, 197, 238, 281, 193, 249, 280, 339, 378, 367, 196, 216, 191, 333, 254, 297, 233, 312, 208, 348, 334, 253, 191, 185, 314, 209, 231, 224, 197, 255, 238, 242, 190, 327, 251, 287, 235, 270, 324, 326, 393, 205, 209, 218, 282, 188, 201, 219, 269, 182, 300, 279, 225, 229, 212, 260, 193, 296, 243, 208, 226, 224, 191, 194, 303, 233, 186, 380, 325, 210, 217, 258, 389, 191, 244, 306, 324, 286, 290, 298, 344, 285, 229, 187, 220, 307, 189, 289, 240, 200, 197, 188, 418, 320, 231, 295, 270, 296, 256, 319, 221, 410, 266, 335, 494, 241, 256, 198, 207, 474, 193, 189, 338, 218, 319, 261, 239, 184, 179, 301, 190, 286, 213, 233, 187, 262, 229, 276, 292, 180, 196, 221, 260, 240, 298, 337, 213, 220, 329, 299, 409, 230, 366, 353, 214, 195, 256, 275, 204, 429, 301, 243, 184, 195, 189, 185, 483, 293, 239, 353, 223, 233, 202, 262, 249, 286, 197, 271, 259, 209, 204, 218, 380, 254, 212, 243, 220, 243, 251, 189, 187, 192, 189, 259, 187, 265, 196, 216, 345, 279, 195, 403, 313, 445, 201, 367, 203, 305, 453, 214, 290, 176, 203, 215, 216, 257, 185, 238, 429, 245, 223, 422, 299, 218, 196, 322, 252, 185, 309, 268, 209, 194, 218, 347, 307, 190, 333, 181, 211, 188, 471, 345, 303, 451, 227, 297, 197, 192, 223, 322, 305, 179, 183, 202, 190, 193, 218, 225, 192, 220, 406, 221, 243, 264, 299, 208, 252, 190, 194, 269, 227, 183, 221, 386, 178, 354, 272, 240, 431, 210, 210, 216, 219, 253, 234, 193, 218, 203, 289, 232, 235, 203, 225, 411, 210, 217, 187, 196, 195, 223, 212, 317, 282, 251, 447, 189, 202, 299, 257, 260, 213, 224, 307, 246, 217, 204, 239, 359, 224, 346, 242, 210, 350, 285, 251, 227, 294, 365, 217, 217, 218, 235, 213, 300, 228, 245, 236, 258, 260, 197, 214, 204, 241, 260, 278, 217, 270, 198, 260, 185, 190, 330, 183, 399, 199, 223, 262, 260, 262, 230, 262, 222, 184, 271, 253, 269, 184, 188, 409, 219, 281, 189, 219, 288, 283, 331, 196, 220, 327, 182, 356, 218, 182, 248, 346, 343, 235, 185, 222, 312, 322, 400, 216, 183, 187, 338, 219, 277, 275, 195, 192, 267, 319, 190, 280, 222, 248, 431, 194, 189, 252, 203, 249, 271, 218, 194, 264, 266, 235, 303, 306, 235, 214, 236, 267, 186, 321, 315, 237, 254, 197, 304, 198, 196, 194, 318, 230, 247, 191, 251, 264, 246, 186, 242, 210, 236, 242, 254, 202, 269, 211, 221, 289, 224, 208, 326, 244, 246, 192, 479, 234, 195, 207, 320, 195, 212, 264, 189, 353, 285, 221, 188, 182, 189, 315, 185, 180, 315, 197, 190, 213, 306, 198, 288, 258, 265, 235, 241, 218, 287, 222, 314, 186, 332, 393, 242, 319, 180, 215, 219, 189, 325, 178, 226, 322, 200, 181, 216, 244, 254, 274, 373, 295, 271, 196, 252, 275, 191, 293, 225, 215, 191, 255, 299, 184, 281, 253, 278, 372, 206, 210, 303, 187, 285, 302, 193, 190, 288, 244, 289, 212, 189, 351, 261, 284, 296, 181, 216, 365, 283, 194, 480, 215, 193, 181, 275, 214, 216, 183, 283, 250, 189, 299, 295, 203, 280, 307, 180, 204, 306, 289, 305, 354, 252, 211, 260, 232, 195, 262, 288, 217, 214, 278, 204, 201, 291, 204, 283, 201, 193, 209, 377, 211, 265, 355, 235, 264, 185, 242, 338, 236, 207, 214, 282, 472, 198, 278, 414, 253, 382, 192, 251, 273, 260, 207, 234, 194, 209, 212, 369, 192, 333, 305, 248, 223, 200, 231, 292, 219, 279, 203, 244, 268, 196, 318, 187, 422, 199, 183, 186, 273, 251, 192, 185, 219, 261, 193, 287, 215, 199, 212, 354, 207, 201, 217, 266, 228, 248, 205, 239, 179, 210, 187, 223, 338, 180, 233, 194, 312, 237, 224, 260, 240, 205, 321, 236, 231, 196, 212, 185, 314, 233, 279, 215, 272, 270, 386, 211, 330, 215, 323, 302, 193, 248, 260, 194, 206, 353, 191, 301, 256, 308, 238, 198, 206, 334, 193, 223, 279, 197, 199, 244, 266, 202, 221, 192, 308, 332, 354, 217, 250, 332, 286, 353, 287, 222, 205, 259, 223, 306, 280, 220, 178, 184, 267, 243, 272, 184, 281, 301, 245, 365, 201, 225, 220, 224, 221, 263, 212, 230, 192, 200, 189, 217, 354, 306, 215, 226, 304, 259, 257, 192, 259, 190, 252, 235, 189, 190, 302, 271, 279, 226, 479, 268, 193, 188, 199, 226, 198, 254, 255, 301, 228, 206, 206, 186, 193, 234, 192, 273, 202, 234, 184, 230, 273, 213, 325, 351, 273, 230, 206, 323, 188, 232, 195, 250, 303, 269, 217, 212, 308, 275, 284, 277, 257, 327, 258, 318, 205, 368, 266, 187, 301, 259, 276, 301, 192, 251, 377, 382, 245, 187, 358, 237, 268, 235, 230, 307, 251, 276, 188, 290, 205, 294, 185, 250, 299, 311, 187, 227, 233, 192, 184, 223, 211, 324, 197, 237, 209, 227, 246, 218, 385, 231, 192, 210, 243, 266, 209, 197, 242, 212, 183, 250, 238, 210, 321, 261, 225, 211, 270, 195, 199, 206, 187, 377, 413, 203, 264, 184, 339, 243, 345, 214, 185, 191, 362, 223, 207, 191, 380, 238, 187, 316, 247, 305, 250, 213, 240, 223, 329, 211, 243, 457, 179, 313, 275, 222, 212, 254, 195, 178, 270, 224, 184, 275, 197, 296, 260, 290, 256, 181, 233, 233, 348, 201, 247, 203, 228, 189, 322, 216, 368, 186, 204, 365, 229, 253, 241, 331, 184, 380, 334, 189, 195, 247, 305, 235, 272, 176, 210, 373, 300, 355, 401, 177, 192, 189, 190, 333, 306, 225, 211, 195, 220, 184, 232, 274, 182, 196, 237, 202, 238, 354, 212, 269, 209, 337, 194, 200, 186, 359, 249, 189, 193, 208, 246, 185, 212, 270, 229, 288, 237, 191, 183, 272, 257, 285, 192, 228, 229, 228, 193, 226, 194, 209, 184, 240, 240, 235, 206, 369, 276, 274, 338, 338, 196, 231, 204, 189, 192, 184, 439, 204, 231, 201, 182, 363, 351, 214, 196, 212, 247, 242, 183, 181, 211, 210, 194, 360, 202, 205, 331, 282, 213, 190, 327, 197, 235, 254, 237, 192, 320, 183, 243, 276, 229, 247, 237, 218, 294, 257, 252, 203, 254, 234, 207, 247, 215, 215, 199, 269, 234, 307, 236, 332, 211, 219, 228, 211, 301, 179, 232, 287, 181, 229, 293, 199, 194, 221, 185, 446, 372, 328, 183, 190, 387, 195, 272, 196, 205, 398, 179, 286, 281, 221, 241, 237, 201, 243, 216, 395, 235, 285, 206, 190, 227, 199, 204, 282, 243, 331, 193, 330, 227, 241, 346, 233, 368, 283, 355, 339, 277, 235, 341, 213, 287, 305, 298, 207, 271, 343, 200, 264, 179, 275, 313, 188, 257, 421, 357, 213, 235, 324, 351, 209, 241, 186, 224, 230, 184, 248, 180, 227, 180, 296, 251, 194, 283, 189, 210, 256, 189, 332, 376, 192, 222, 209, 250, 200, 214, 455, 193, 193, 178, 199, 213, 275, 235, 320, 364, 294, 200, 197, 283, 247, 304, 340, 249, 274, 240, 234, 216, 281, 410, 225, 228, 294, 202, 223, 323, 259, 215, 478, 290, 358, 338, 234, 257, 327, 218, 248, 241, 376, 235, 256, 210, 209, 259, 195, 200, 210, 185, 265, 192, 197, 248, 196, 181, 306, 417, 209, 394, 282, 320, 207, 187, 184, 245, 224, 209, 217, 215, 271, 240, 243, 304, 198, 453, 468, 276, 259, 276, 185, 194, 205, 223, 226, 297, 185, 322, 349, 277, 289, 308, 229, 189, 303, 185, 254, 295, 231, 195, 194, 184, 243, 244, 252, 406, 283, 181, 225, 272, 265, 187, 260, 227, 269, 344, 200, 193, 200, 203, 317, 184, 180, 357, 217, 195, 210, 211, 283, 233, 221, 187, 206, 198, 219, 201, 321, 202, 222, 185, 191, 382, 288, 191, 198, 239, 256, 265, 384, 240, 210, 193, 371, 260, 234, 209, 232, 360, 209, 401, 319, 260, 334, 216, 191, 191, 276, 341, 259, 193, 182, 192, 190, 350, 236, 262, 281, 216, 200, 283, 303, 221, 281, 420, 315, 208, 238, 271, 303, 282, 212, 182, 206, 214, 254, 261, 228, 262, 214, 240, 452, 345, 212, 327, 368, 337, 235, 264, 198, 249, 261, 214, 319, 378, 364, 302, 277, 199, 234, 210, 301, 244, 199, 196, 281, 256, 209, 182, 383, 245, 214, 248, 202, 236, 247, 336, 233, 394, 188, 341, 247, 399, 333, 253, 411, 338, 221, 204, 249, 182, 178, 210, 261, 202, 415, 331, 194, 258, 194, 346, 224, 314, 183, 337, 180, 197, 187, 191, 225, 223, 347, 250, 214, 211, 184, 323, 443, 233, 199, 183, 223, 404, 236, 225, 354, 306, 189, 215, 289, 194, 487, 218, 395, 241, 276, 249, 214, 186, 214, 272, 359, 365, 197, 209, 227, 180, 251, 201, 214, 200, 386, 208, 245, 209, 202, 212, 202, 261, 193, 484, 189, 317, 375, 200, 232, 302, 276, 221, 298, 271, 204, 212, 325, 215, 189, 382, 194, 195, 203, 469, 389, 184, 244, 243, 184, 180, 246, 242, 182, 324, 238, 235, 247, 191, 198, 446, 204, 221, 235, 191, 309, 256, 194, 194, 354, 336, 187, 240, 349, 196, 322, 262, 302, 232, 343, 202, 305, 239, 249, 361, 279, 334, 180, 286, 218, 188, 325, 183, 199, 216, 290, 240, 197, 378, 199, 219, 376, 232, 186, 209, 188, 235, 290, 197, 197, 417, 187, 221, 201, 223, 234, 190, 225, 277, 199, 282, 194, 222, 203, 195, 242, 222, 298, 339, 206, 217, 435, 201, 226, 201, 388, 203, 278, 238, 198, 181, 303, 181, 195, 239, 251, 334, 359, 190, 323, 249, 271, 355, 325, 296, 224, 195, 279, 321, 268, 183, 188, 180, 214, 195, 181, 224, 359, 213, 183, 191, 283, 284, 321, 206, 183, 182, 460, 356, 181, 207, 183, 266, 209, 249, 188, 264, 237, 197, 222, 369, 288, 234, 298, 181, 193, 198, 251, 218, 190, 232, 207, 273, 256, 239, 378, 381, 219, 191, 191, 200, 186, 223, 258, 200, 191, 287, 291, 261, 249, 310, 188, 290, 205, 189, 349, 189, 185, 212, 410, 235, 228, 272, 183, 275, 338, 417, 310, 210, 230, 217, 195, 190, 203, 279, 189, 243, 430, 208, 294, 315, 216, 188, 219, 189, 176, 219, 276, 187, 381, 291, 224, 250, 272, 232, 231, 185, 286, 385, 223, 251, 222, 203, 231, 274, 197, 223, 210, 185, 221, 186, 193, 189, 236, 188, 203, 218, 219, 181, 187, 254, 234, 433, 255, 253, 212, 186, 273, 269, 457, 182, 370, 211, 214, 301, 208, 264, 275, 335, 304, 264, 223, 237, 210, 281, 206, 198, 236, 337, 183, 246, 279, 185, 217, 477, 245, 278, 329, 371, 198, 260, 182, 216, 248, 205, 282, 220, 196, 198, 249, 234, 328, 188, 195, 217, 286, 235, 287, 382, 190, 242, 180, 185, 201, 232, 344, 183, 208, 300, 250, 262, 231, 247, 428, 293, 216, 192, 210, 305, 209, 300, 204, 187, 195, 233, 222, 200, 194, 343, 339, 188, 236, 300, 298, 180, 238, 273, 253, 305, 338, 192, 199, 232, 182, 238, 198, 198, 202, 194, 250, 364, 221, 194, 224, 317, 401, 304, 193, 178, 285, 286, 458, 251, 194, 198, 330, 190, 202, 265, 246, 234, 260, 194, 282, 420, 180, 200, 286, 240, 280, 198, 198, 196, 403, 342, 290, 187, 196, 213, 214, 206, 350, 310, 254, 202, 207, 260, 252, 266, 248, 207, 460, 196, 212, 224, 235, 283, 190, 333, 240, 317, 217, 269, 246, 219, 378, 203, 302, 194, 279, 193, 264, 352, 240, 316, 360, 296, 192, 235, 299, 255, 211, 295, 252, 221, 227, 221, 250, 293, 210, 195, 251, 279, 388, 259, 212, 179, 240, 270, 236, 233, 212, 228, 230, 198, 212, 190, 328, 238, 186, 213, 186, 380, 198, 199, 246, 209, 252, 361, 347, 205, 250, 225, 284, 412, 328, 190, 221, 327, 183, 353, 229, 308, 261, 233, 240, 236, 236, 225, 278, 289, 288, 251, 249, 286, 247, 234, 248, 309, 233, 259, 255, 209, 290, 268, 343, 185, 235, 199, 254, 299, 219, 204, 196, 251, 185, 367, 279, 218, 326, 352, 245, 220, 197, 325, 178, 298, 197, 270, 184, 225, 361, 189, 250, 262, 273, 298, 191, 219, 216, 204, 368, 250, 180, 279, 186, 322, 331, 329, 208, 242, 266, 363, 431, 273, 300, 183, 324, 181, 379, 248, 182, 284, 304, 269, 273, 188, 280, 220, 203, 218, 182, 245, 455, 183, 322, 228, 287, 244, 196, 206, 188, 189, 227, 199, 245, 259, 243, 236, 243, 234, 284, 237, 272, 237, 294, 272, 283, 303, 268, 365, 224, 289, 186, 285, 229, 186, 389, 221, 180, 227, 181, 204, 388, 332, 266, 278, 232, 230, 231, 191, 204, 359, 214, 205, 246, 368, 341, 223, 299, 318, 300, 256, 283, 343, 225, 344, 248, 251, 213, 196, 198, 297, 335, 245, 186, 202, 194, 214, 241, 191, 234, 267, 251, 282, 253, 239, 192, 313, 239, 192, 184, 225, 258, 246, 229, 229, 257, 431, 299, 207, 284, 286, 196, 259, 239, 271, 260, 274, 305, 322, 203, 184, 180, 199, 358, 212, 211, 211, 187, 188, 218, 286, 191, 232, 204, 240, 274, 225, 288, 294, 229, 348, 288, 253, 202, 209, 258, 267, 409, 330, 184, 191, 177, 214, 253, 253, 350, 204, 188, 202, 189, 421, 349, 188, 301, 364, 405, 189, 273, 276, 221, 196, 391, 233, 218, 216, 225, 406, 214, 207, 241, 237, 259, 251, 470, 229, 194, 406, 300, 279, 229, 339, 331, 261, 443, 194, 240, 185, 331, 229, 192, 303, 418, 218, 279, 181, 341, 206, 329, 200, 194, 280, 338, 177, 309, 216, 182, 219, 190, 253, 214, 195, 268, 263, 236, 211, 242, 267, 290, 187, 214, 187, 287, 281, 187, 250, 212, 202, 374, 242, 410, 201, 211, 193, 306, 351, 300, 200, 236, 184, 182, 231, 197, 188, 297, 249, 182, 188, 214, 250, 291, 368, 311, 371, 189, 223, 286, 464, 300, 275, 237, 343, 321, 320, 246, 240, 205, 224, 209, 277, 358, 340, 187, 276, 232, 214, 241, 192, 234, 411, 191, 344, 207, 238, 195, 253, 247, 207, 186, 304, 188, 197, 192, 293, 253, 183, 262, 207, 199, 245, 234, 217, 186, 210, 253, 237, 185, 216, 178, 213, 214, 235, 203, 240, 227, 232, 200, 219, 307, 246, 340, 187, 196, 200, 232, 187, 327, 204, 229, 192, 204, 187, 230, 249, 243, 307, 192, 192, 210, 198, 273, 218, 325, 204, 193, 244, 220, 189, 199, 180, 203, 273, 204, 214, 311, 230, 276, 234, 307, 348, 278, 250, 187, 374, 194, 196, 207, 277, 300, 348, 254, 219, 240, 203, 206, 342, 225, 243, 189, 211, 253, 272, 215, 231, 229, 316, 309, 236, 201, 224, 394, 252, 218, 187, 272, 184, 194, 202, 246, 246, 188, 242, 239, 225, 187, 209, 210, 267, 216, 319, 212, 250, 223, 267, 261, 280, 307, 327, 197, 321, 306, 263, 185, 202, 308, 230, 256, 259, 195, 287, 245, 230, 286, 197, 195, 266, 210, 237, 216, 227, 341, 327, 282, 386, 218, 435, 198, 221, 411, 254, 243, 246, 179, 212, 205, 283, 200, 434, 197, 280, 343, 285, 311, 210, 204, 323, 332, 262, 261, 185, 188, 181, 262, 399, 194, 338, 280, 220, 392, 306, 350, 243, 365, 300, 196, 320, 208, 213, 464, 183, 177, 374, 225, 208, 248, 244, 202, 231, 299, 212, 179, 343, 205, 200, 187, 237, 244, 251, 188, 262, 192, 220, 251, 184, 273, 183, 196, 241, 253, 227, 323, 386, 247, 222, 374, 268, 281, 329, 219, 239, 197, 214, 237, 242, 209, 206, 188, 294, 186, 186, 240, 343, 188, 372, 192, 338, 219, 349, 199, 210, 250, 331, 201, 249, 237, 274, 196, 188, 400, 195, 416, 354, 268, 188, 217, 363, 261, 223, 226, 410, 346, 223, 208, 272, 200, 329, 230, 198, 380, 315, 272, 190, 252, 225, 219, 327, 326, 293, 211, 187, 213, 180, 322, 205, 280, 187, 204, 193, 239, 264, 230, 387, 283, 258, 183, 292, 291, 303, 312, 206, 195, 258, 241, 272, 288, 186, 264, 327, 227, 245, 290, 189, 193, 425, 275, 205, 305, 203, 322, 189, 247, 303, 205, 181, 326, 242, 228, 363, 212, 304, 319, 223, 336, 284, 291, 270, 384, 272, 224, 212, 319, 302, 273, 197, 185, 181, 271, 194, 309, 228, 207, 215, 213, 200, 197, 229, 177, 209, 204, 195, 319, 315, 233, 275, 191, 351, 197, 429, 196, 401, 318, 396, 191, 283, 296, 297, 194, 214, 299, 304, 245, 224, 394, 225, 410, 201, 442, 200, 318, 188, 238, 240, 190, 371, 316, 197, 260, 215, 213, 225, 229, 343, 367, 185, 193, 243, 177, 325, 285, 378, 266, 270, 201, 201, 261, 301, 192, 197, 192, 339, 196, 182, 216, 203, 379, 249, 205, 221, 304, 189, 274, 275, 413, 183, 217, 256, 287, 351, 254, 317, 343, 335, 383, 197, 369, 181, 214, 265, 192, 244, 297, 276, 255, 369, 209, 252, 321, 223, 238, 191, 340, 243, 241, 302, 263, 248, 301, 405, 191, 296, 216, 393, 343, 321, 204, 275, 367, 368, 228, 349, 181, 229, 215, 422, 265, 404, 234, 230, 241, 287, 182, 441, 364, 190, 315, 190, 214, 218, 239, 203, 236, 322, 198, 187, 220, 187, 188, 211, 208, 263, 285, 299, 277, 279, 200, 243, 212, 206, 283, 244, 220, 343, 345, 203, 214, 263, 394, 325, 290, 241, 297, 186, 362, 235, 250, 321, 184, 202, 201, 191, 298, 394, 223, 305, 185, 286, 233, 227, 279, 185, 282, 328, 191, 247, 296, 257, 316, 237, 225, 189, 345, 239, 200, 227, 193, 230, 329, 203, 240, 208, 237, 211, 234, 225, 322, 199, 214, 307, 215, 226, 300, 192, 369, 185, 242, 307, 194, 254, 251, 245, 335, 312, 221, 222, 217, 386, 391, 178, 306, 223, 193, 180, 242, 309, 308, 347, 232, 429, 296, 180, 216, 234, 314, 291, 189, 199, 274, 184, 244, 199, 186, 224, 192, 288, 300, 296, 337, 203, 417, 222, 188, 222, 364, 346, 250, 278, 321, 194, 340, 236, 290, 307, 238, 183, 339, 195, 180, 195, 220, 228, 293, 187, 264, 324, 431, 319, 403, 210, 197, 340, 212, 185, 188, 229, 183, 189, 321, 356, 294, 231, 256, 286, 210, 259, 246, 200, 229, 328, 248, 377, 233, 275, 246, 239, 263, 211, 190, 258, 207, 199, 216, 188, 238, 332, 178, 198, 206, 268, 199, 265, 219, 188, 226, 296, 391, 364, 425, 243, 211, 208, 282, 287, 268, 271, 185, 178, 234, 193, 249, 288, 285, 182, 227, 384, 284, 189, 267, 195, 268, 193, 283, 199, 214, 202, 287, 233, 198, 202, 447, 195, 264, 198, 245, 333, 214, 287, 248, 328, 455, 215, 251, 205, 181, 295, 206, 320, 269, 253, 195, 213, 314, 256, 212, 233, 252, 189, 430, 232, 204, 332, 290, 195, 218, 180, 181, 199, 201, 253, 256, 215, 228, 230, 194, 192, 263, 385, 388, 409, 205, 199, 212, 186, 369, 207, 179, 334, 303, 219, 231, 198, 228, 183, 214, 327, 231, 198, 200, 400, 209, 231, 211, 234, 230, 201, 294, 183, 272, 208, 227, 185, 373, 415, 469, 296, 286, 244, 184, 324, 213, 192, 402, 213, 201, 333, 208, 354, 206, 344, 228, 245, 207, 279, 347, 236, 236, 237, 318, 292, 187, 199, 279, 318, 354, 279, 362, 204, 304, 226, 205, 232, 388, 246, 209, 200, 185, 237, 201, 222, 292, 183, 187, 298, 216, 224, 250, 183, 405, 205, 306, 190, 220, 250, 270, 393, 252, 350, 286, 212, 185, 191, 234, 437, 267, 214, 432, 293, 204, 196, 191, 194, 187, 209, 209, 266, 230, 230, 235, 303, 275, 212, 239, 233, 243, 184, 183, 225, 267, 186, 284, 203, 245, 276, 186, 227, 411, 238, 208, 190, 273, 185, 223, 361, 316, 290, 230, 356, 359, 284, 203, 201, 358, 221, 261, 191, 189, 193, 197, 332, 229, 293, 191, 199, 219, 187, 292, 197, 229, 221, 186, 438, 184, 186, 216, 189, 238, 304, 259, 203, 254, 256, 264, 251, 219, 263, 186, 251, 191, 195, 232, 193, 248, 224, 187, 188, 230, 184, 390, 455, 208, 233, 231, 367, 220, 271, 309, 225, 314, 275, 307, 189, 332, 204, 245, 181, 182, 258, 333, 210, 233, 204, 200, 390, 226, 375, 187, 319, 347, 328, 251, 269, 230, 220, 263, 185, 278, 246, 216, 200, 277, 293, 233, 211, 178, 210, 247, 238, 388, 287, 296, 242, 297, 212, 290, 236, 409, 314, 366, 186, 210, 266, 234, 433, 291, 317, 341, 317, 341, 178, 194, 402, 454, 206, 226, 292, 224, 258, 204, 278, 235, 258, 299, 185, 195, 211, 276, 191, 376, 288, 194, 406, 244, 185, 194, 288, 254, 360, 247, 303, 213, 239, 298, 251, 407, 292, 435, 320, 202, 269, 350, 186, 298, 259, 211, 194, 184, 262, 288, 205, 239, 394, 415, 188, 252, 240, 312, 315, 231, 413, 213, 283, 414, 263, 293, 369, 217, 264, 286, 348, 253, 282, 215, 330, 344, 255, 187, 317, 180, 201, 321, 243, 212, 331, 240, 214, 388, 222, 341, 219, 205, 180, 288, 234, 282, 309, 246, 213, 301, 250, 319, 189, 209, 209, 247, 241, 357, 335, 216, 207, 182, 201, 317, 320, 182, 249, 185, 271, 380, 297, 291, 263, 205, 202, 432, 182, 198, 223, 222, 318, 378, 268, 208, 267, 321, 229, 378, 383, 324, 248, 259, 338, 192, 185, 341, 268, 326, 348, 340, 201, 186, 298, 260, 187, 211, 427, 396, 235, 193, 253, 274, 195, 459, 404, 273, 207, 184, 277, 325, 406, 325, 206, 208, 189, 197, 286, 209, 226, 263, 237, 226, 206, 196, 241, 201, 185, 287, 379, 231, 220, 222, 392, 272, 213, 247, 215, 494, 356, 419, 204, 301, 191, 346, 318, 454, 188, 328, 227, 208, 270, 304, 276, 235, 333, 231, 183, 222, 291, 290, 192, 239, 180, 257, 336, 216, 194, 221, 189, 279, 200, 230, 182, 252, 284, 257, 189, 289, 320, 226, 299, 190, 179, 264, 288, 253, 212, 201, 356, 218, 421, 395, 206, 337, 203, 300, 347, 380, 329, 308, 205, 204, 314, 269, 184, 213, 243, 337, 204, 329, 299, 192, 349, 185, 484, 316, 182, 263, 350, 320, 249, 326, 211, 339, 265, 287, 278, 230, 285, 362, 279, 216, 289, 185, 309, 456, 179, 252, 214, 202, 485, 217, 318, 410, 209, 245, 254, 211, 264, 404, 304, 253, 186, 179, 223, 185, 217, 199, 250, 199, 181, 230, 302, 338, 303, 327, 181, 229, 311, 242, 219, 247, 254, 197, 227, 293, 311, 254, 245, 206, 304, 301, 257, 386, 223, 360, 247, 338, 310, 411, 239, 275, 250, 377, 189, 205, 181, 385, 360, 401, 304, 290, 313, 234, 233, 197, 346, 269, 244, 191, 285, 231, 239, 242, 185, 300, 280, 272, 181, 357, 404, 315, 214, 189, 193, 266, 225, 228, 229, 270, 209, 236, 181, 183, 186, 249, 355, 180, 201, 229, 328, 259, 219, 183, 185, 194, 496, 202, 246, 230, 217, 303, 208, 253, 255, 218, 387, 323, 467, 221, 330, 298, 240, 454, 207, 190, 201, 183, 382, 253, 198, 214, 271, 270, 269, 306, 189, 199, 289, 380, 256, 202, 281, 204, 258, 182, 240, 188, 309, 383, 374, 179, 235, 221, 268, 188, 346, 203, 369, 244, 299, 218, 202, 187, 253, 252, 204, 212, 209, 294, 188, 241, 217, 451, 492, 222, 185, 278, 222, 181, 297, 488, 281, 197, 372, 316, 195, 216, 240, 315, 182, 183, 201, 223, 189, 242, 224, 330, 361, 184, 454, 214, 262, 193, 229, 196, 274, 427, 197, 369, 408, 342, 227, 291, 343, 180, 209, 301, 182, 202, 198, 208, 359, 207, 299, 392, 361, 181, 205, 271, 221, 239, 191, 181, 207, 225, 273, 319, 316, 405, 211, 251, 296, 229, 197, 311, 312, 280, 241, 338, 290, 273, 409, 239, 354, 297, 293, 293, 226, 465, 275, 217, 470, 376, 240, 291, 249, 181, 362, 229, 201, 234, 233, 214, 208, 196, 286, 189, 280, 183, 182, 322, 204, 253, 248, 187, 305, 276, 251, 191, 252, 227, 337, 222, 200, 233, 213, 198, 372, 186, 385, 309, 204, 362, 243, 181, 226, 181, 327, 360, 224, 229, 280, 236, 189, 217, 400, 190, 192, 273, 209, 194, 223, 203, 196, 321, 204, 227, 214, 192, 184, 332, 252, 206, 193, 280, 197, 313, 226, 189, 300, 312, 285, 217, 199, 300, 220, 311, 196, 200, 276, 243, 347, 366, 202, 371, 332, 181, 294, 205, 188, 244, 193, 343, 214, 222, 245, 266, 196, 191, 218, 196, 217, 213, 311, 303, 237, 278, 187, 182, 198, 335, 303, 378, 299, 234, 260, 236, 406, 200, 300, 271, 336, 250, 187, 246, 245, 228, 189, 177, 283, 217, 193, 235, 259, 257, 388, 406, 217, 195, 188, 207, 260, 327, 189, 190, 212, 196, 207, 323, 346, 201, 222, 195, 277, 263, 218, 328, 311, 243, 280, 280, 217, 379, 180, 218, 200, 299, 239, 205, 353, 354, 306, 206, 246, 315, 223, 316, 262, 284, 392, 302, 301, 193, 288, 208, 219, 253, 186, 239, 192, 275, 179, 216, 361, 228, 212, 209, 225, 287, 185, 330, 213, 294, 210, 285, 184, 191, 194, 194, 181, 183, 210, 317, 284, 257, 272, 195, 266, 243, 238, 372, 484, 209, 332, 358, 251, 210, 254, 232, 221, 211, 244, 200, 187, 187, 250, 203, 249, 342, 275, 187, 232, 353, 227, 220, 301, 190, 180, 222, 212, 299, 190, 291, 357, 328, 185, 251, 195, 230, 297, 242, 314, 203, 259, 214, 180, 285, 288, 218, 290, 414, 236, 245, 283, 208, 300, 339, 399, 210, 326, 332, 423, 272, 235, 240, 194, 240, 237, 199, 201, 275, 284, 231, 370, 206, 268, 192, 250, 204, 282, 203, 227, 194, 195, 270, 219, 232, 241, 365, 428, 207, 240, 258, 343, 250, 250, 203, 225, 266, 312, 190, 356, 268, 194, 183, 280, 178, 214, 216, 199, 244, 201, 192, 179, 196, 202, 252, 334, 181, 212, 185, 234, 204, 213, 179, 295, 297, 289, 207, 180, 195, 231, 221, 202, 247, 187, 297, 198, 229, 293, 270, 261, 304, 198, 203, 207, 195, 415, 277, 261, 280, 468, 205, 243, 261, 407, 205, 215, 256, 196, 200, 205, 204, 319, 276, 231, 218, 213, 257, 233, 294, 181, 238, 250, 187, 199, 283, 211, 184, 204, 186, 281, 242, 221, 451, 211, 183, 352, 404, 187, 188, 221, 221, 296, 254, 270, 290, 207, 297, 298, 206, 237, 190, 218, 248, 330, 216, 192, 182, 239, 205, 212, 344, 437, 182, 208, 197, 274, 237, 256, 193, 222, 183, 189, 219, 284, 283, 305, 183, 234, 189, 217, 288, 209, 211, 311, 296, 203, 239, 457, 176, 493, 184, 282, 207, 234, 188, 201, 191, 260, 251, 202, 185, 301, 216, 184, 269, 202, 405, 329, 190, 195, 290, 197, 365, 212, 370, 189, 190, 211, 284, 289, 219, 215, 231, 282, 214, 196, 309, 274, 380, 191, 254, 229, 285, 182, 187, 216, 181, 244, 273, 254, 254, 186, 202, 194, 355, 207, 311, 260, 237, 192, 222, 183, 317, 196, 226, 261, 266, 212, 213, 204, 295, 465, 189, 311, 249, 300, 263, 194, 272, 321, 251, 229, 360, 243, 207, 196, 310, 193, 193, 256, 236, 180, 245, 239, 361, 197, 387, 212, 235, 275, 272, 190, 189, 198, 202, 206, 321, 186, 318, 205, 185, 223, 302, 188, 187, 219, 284, 246, 332, 191, 247, 242, 228, 244, 208, 342, 287, 271, 366, 249, 265, 241, 195, 181, 326, 262, 255, 269, 338, 298, 230, 256, 297, 226, 204, 183, 331, 232, 226, 248, 199, 227, 182, 215, 212, 244, 344, 185, 205, 182, 189, 211, 303, 211, 273, 180, 199, 251, 303, 393, 215, 199, 222, 316, 205, 209, 240, 199, 280, 408, 222, 310, 309, 230, 203, 197, 276, 238, 210, 391, 191, 222, 226, 351, 253, 331, 269, 222, 269, 222, 232, 197, 234, 250, 205, 187, 196, 217, 210, 190, 325, 385, 310, 183, 273, 215, 289, 192, 204, 331, 192, 219, 349, 274, 213, 190, 308, 195, 188, 233, 206, 281, 268, 246, 208, 194, 360, 217, 252, 212, 276, 365, 213, 264, 282, 182, 203, 188, 199, 204, 324, 193, 355, 223, 261, 253, 415, 438, 179, 292, 185, 183, 263, 232, 228, 227, 382, 253, 202, 249, 210, 366, 288, 247, 213, 255, 356, 270, 190, 238, 203, 269, 441, 218, 226, 269, 285, 363, 241, 205, 275, 223, 328, 192, 235, 318, 235, 194, 222, 252, 193, 191, 342, 190, 230, 305, 260, 424, 246, 216, 256, 217, 216, 188, 236, 213, 221, 275, 272, 278, 237, 362, 207, 188, 211, 193, 267, 204, 274, 372, 197, 279, 214, 244, 198, 407, 379, 245, 255, 207, 331, 283, 254, 290, 200, 322, 297, 236, 481, 205, 199, 325, 253, 200, 196, 219, 327, 184, 207, 304, 357, 238, 233, 195, 249, 252, 218, 293, 224, 327, 410, 399, 203, 199, 282, 402, 377, 374, 278, 189, 341, 272, 261, 212, 307, 186, 223, 199, 324, 185, 244, 327, 205, 187, 301, 192, 265, 297, 299, 205, 194, 281, 188, 230, 381, 207, 246, 283, 329, 202, 193, 186, 303, 245, 283, 188, 249, 289, 202, 212, 282, 188, 219, 236, 216, 273, 257, 200, 184, 219, 242, 392, 211, 249, 227, 200, 184, 199, 182, 186, 420, 242, 282, 198, 179, 195, 292, 196, 192, 281, 294, 326, 209, 290, 218, 265, 357, 232, 226, 249, 190, 269, 235, 221, 191, 240, 205, 199, 210, 312, 205, 265, 370, 208, 279, 258, 261, 190, 202, 236, 228, 212, 314, 216, 336, 193, 198, 336, 220, 203, 275, 182, 233, 198, 349, 197, 179, 183, 238, 266, 197, 182, 267, 306, 187, 230, 209, 307, 241, 360, 240, 180, 323, 179, 493, 329, 234, 328, 246, 434, 184, 398, 178, 375, 297, 194, 408, 204, 223, 210, 366, 203, 186, 210, 236, 273, 405, 212, 318, 199, 211, 268, 253, 328, 185, 275, 419, 397, 182, 196, 265, 209, 342, 225, 281, 216, 206, 397, 253, 339, 360, 262, 240, 282, 290, 256, 219, 247, 235, 214, 199, 250, 236, 235, 185, 210, 215, 465, 186, 288, 259, 311, 246, 330, 278, 232, 274, 193, 223, 253, 217, 240, 287, 182, 282, 314, 213, 196, 238, 371, 231, 287, 297, 180, 215, 203, 324, 350, 215, 207, 211, 353, 344, 258, 242, 340, 206, 231, 180, 414, 278, 261, 234, 412, 439, 232, 271, 221, 195, 226, 225, 205, 285, 231, 325, 267, 365, 213, 267, 236, 220, 190, 186, 193, 198, 222, 299, 274, 184, 280, 225, 223, 232, 265, 193, 183, 262, 193, 328, 199, 207, 284, 305, 227, 192, 191, 313, 205, 268, 266, 203, 332, 265, 244, 228, 386, 279, 220, 295, 309, 199, 198, 423, 186, 207, 286, 222, 255, 213, 271, 238, 244, 229, 206, 203, 221, 225, 371, 198, 262, 195, 333, 225, 189, 232, 185, 253, 313, 248, 201, 241, 202, 251, 185, 218, 258, 363, 236, 198, 187, 222, 236, 194, 376, 211, 239, 227, 239, 295, 207, 232, 306, 253, 307, 391, 220, 276, 202, 209, 264, 216, 198, 219, 217, 245, 245, 329, 270, 181, 245, 205, 211, 263, 260, 216, 437, 234, 220, 374, 247, 356, 191, 229, 204, 365, 190, 292, 246, 221, 207, 213, 184, 227, 300, 308, 442, 234, 222, 334, 203, 463, 193, 263, 346, 267, 259, 357, 229, 190, 205, 373, 186, 220, 261, 184, 190, 245, 257, 321, 200, 202, 264, 259, 289, 229, 198, 222, 334, 205, 273, 291, 195, 357, 386, 252, 182, 264, 219, 200, 255, 183, 185, 249, 221, 256, 271, 211, 262, 298, 189, 320, 195, 303, 237, 261, 346, 221, 252, 229, 337, 184, 184, 261, 314, 335, 194, 222, 238, 326, 186, 190, 271, 227, 300, 275, 426, 276, 182, 221, 445, 186, 242, 199, 269, 324, 221, 179, 395, 177, 273, 201, 289, 185, 227, 199, 351, 232, 317, 240, 267, 290, 198, 225, 476, 258, 180, 263, 204, 302, 325, 212, 339, 283, 206, 266, 184, 215, 185, 261, 182, 334, 239, 196, 201, 269, 262, 208, 201, 369, 300, 200, 179, 199, 202, 184, 298, 190, 252, 197, 219, 216, 286, 199, 288, 204, 198, 226, 192, 228, 240, 206, 258, 190, 317, 253, 181, 252, 378, 227, 219, 234, 185, 248, 223, 269, 215, 190, 207, 236, 182, 282, 323, 299, 282, 226, 485, 303, 183, 416, 306, 288, 290, 247, 186, 206, 262, 257, 239, 208, 352, 217, 294, 246, 184, 302, 240, 182, 407, 286, 296, 235, 235, 220, 188, 228, 273, 182, 240, 246, 210, 202, 310, 183, 320, 203, 213, 308, 244, 281, 197, 193, 203, 230, 309, 226, 191, 188, 182, 194, 311, 189, 229, 187, 197, 199, 297, 200, 279, 194, 204, 230, 299, 190, 296, 237, 223, 217, 251, 203, 239, 259, 229, 211, 202, 232, 220, 264, 192, 262, 422, 181, 313, 305, 208, 200, 310, 280, 429, 310, 190, 191, 218, 183, 306, 258, 237, 186, 241, 239, 232, 410, 212, 221, 286, 197, 243, 227, 229, 233, 385, 279, 204, 272, 196, 246, 411, 213, 210, 193, 231, 199, 187, 280, 215, 333, 305, 263, 222, 373, 273, 266, 287, 287, 297, 212, 199, 218, 228, 213, 240, 228, 190, 202, 181, 226, 197, 251, 273, 338, 287, 330, 262, 459, 191, 205, 243, 208, 228, 202, 350, 243, 222, 225, 186, 245, 204, 219, 223, 302, 191, 216, 186, 239, 227, 363, 207, 200, 314, 457, 196, 354, 278, 268, 315, 228, 248, 265, 248, 213, 183, 305, 189, 190, 193, 181, 316, 215, 183, 359, 231, 208, 216, 219, 235, 220, 363, 242, 249, 247, 328, 231, 312, 187, 360, 262, 186, 367, 277, 304, 331, 244, 305, 226, 274, 252, 222, 257, 235, 209, 276, 247, 199, 325, 244, 235, 199, 222, 184, 222, 181, 374, 277, 244, 176, 193, 263, 247, 288, 267, 366, 245, 184, 321, 267, 184, 196, 254, 263, 415, 224, 183, 339, 233, 245, 200, 214, 363, 202, 316, 194, 228, 290, 196, 217, 257, 213, 391, 196, 199, 262, 379, 208, 234, 301, 219, 266, 218, 383, 419, 201, 189, 253, 369, 220, 176, 189, 282, 204, 255, 220, 227, 215, 194, 228, 195, 198, 190, 208, 229, 300, 206, 180, 270, 497, 220, 322, 198, 211, 269, 258, 276, 302, 333, 234, 272, 182, 370, 277, 308, 446, 319, 316, 211, 195, 260, 203, 234, 197, 185, 238, 371, 242, 276, 248, 182, 252, 213, 189, 415, 236, 208, 299, 202, 235, 302, 406, 230, 200, 199, 337, 265, 185, 199, 243, 224, 207, 196, 187, 222, 274, 276, 232, 245, 270, 177, 215, 206, 210, 316, 241, 219, 339, 422, 180, 184, 248, 186, 242, 195, 227, 254, 214, 236, 202, 361, 311, 486, 222, 202, 218, 279, 240, 255, 339, 355, 298, 181, 181, 294, 324, 254, 276, 217, 238, 264, 293, 284, 300, 219, 215, 221, 472, 333, 187, 309, 289, 437, 190, 181, 336, 321, 267, 187, 202, 202, 220, 192, 199, 199, 391, 252, 254, 262, 250, 209, 270, 193, 189, 210, 216, 342, 193, 212, 267, 196, 256, 182, 206, 273, 278, 181, 413, 182, 259, 223, 255, 373, 188, 215, 187, 300, 397, 184, 189, 411, 363, 203, 218, 250, 213, 202, 249, 335, 255, 266, 199, 203, 294, 241, 217, 341, 197, 195, 302, 228, 214, 245, 223, 422, 254, 195, 241, 197, 274, 253, 202, 201, 282, 188, 192, 204, 191, 180, 181, 299, 240, 255, 184, 250, 490, 210, 238, 256, 181, 254, 234, 242, 351, 219, 195, 190, 195, 187, 203, 327, 317, 250, 227, 292, 254, 206, 251, 307, 368, 271, 291, 222, 258, 182, 329, 354, 212, 492, 259, 215, 251, 258, 277, 343, 201, 185, 285, 220, 202, 187, 252, 268, 252, 240, 221, 335, 207, 257, 275, 315, 199, 200, 312, 204, 240, 264, 289, 217, 248, 282, 373, 188, 344, 248, 208, 334, 285, 352, 341, 191, 258, 314, 187, 229, 225, 260, 302, 324, 187, 236, 236, 299, 231, 206, 293, 243, 232, 299, 301, 269, 416, 183, 195, 190, 269, 282, 252, 201, 182, 178, 268, 346, 234, 223, 186, 243, 248, 208, 194, 387, 243, 265, 283, 308, 203, 256, 223, 196, 189, 177, 194, 284, 218, 208, 237, 226, 185, 319, 365, 227, 177, 343, 194, 226, 235, 381, 361, 288, 266, 274, 187, 369, 206, 265, 198, 207, 241, 180, 182, 207, 193, 246, 298, 179, 232, 195, 226, 226, 220, 249, 342, 236, 279, 313, 182, 235, 218, 351, 184, 188, 286, 275, 309, 302, 179, 261, 366, 235, 262, 219, 259, 227, 276, 181, 210, 301, 345, 266, 204, 263, 251, 220, 290, 248, 391, 259, 290, 288, 224, 195, 372, 325, 247, 216, 237, 383, 261, 460, 191, 242, 211, 314, 380, 347, 187, 196, 249, 369, 279, 233, 253, 299, 193, 223, 267, 242, 240, 311, 197, 299, 218, 203, 234, 181, 191, 203, 256, 362, 321, 231, 182, 416, 262, 185, 216, 343, 240, 279, 246, 226, 235, 182, 206, 241, 184, 194, 183, 221, 201, 224, 213, 178, 205, 200, 199, 203, 197, 250, 264, 258, 203, 366, 198, 214, 381, 193, 257, 248, 185, 285, 315, 231, 274, 283, 297, 283, 297, 338, 212, 183, 182, 210, 200, 234, 226, 217, 228, 264, 311, 249, 248, 242, 419, 192, 270, 279, 248, 253, 195, 407, 264, 276, 288, 187, 194, 290, 296, 325, 317, 279, 289, 274, 263, 339, 251, 421, 352, 290, 325, 205, 431, 339, 293, 262, 256, 216, 274, 331, 286, 313, 184, 193, 193, 210, 223, 401, 337, 254, 223, 221, 299, 197, 227, 221, 237, 421, 234, 211, 242, 199, 216, 231, 194, 189, 317, 219, 220, 189, 196, 244, 364, 290, 284, 283, 326, 195, 416, 189, 187, 248, 235, 375, 196, 195, 201, 269, 364, 292, 239, 258, 273, 330, 197, 334, 205, 203, 224, 293, 179, 206, 196, 230, 240, 258, 218, 291, 228, 373, 301, 242, 299, 184, 284, 195, 196, 257, 182, 214, 206, 273, 184, 253, 239, 371, 207, 269, 201, 231, 268, 242, 215, 225, 204, 255, 184, 245, 193, 413, 190, 246, 183, 196, 217, 369, 309, 404, 192, 236, 275, 181, 295, 201, 199, 191, 232, 221, 229, 270, 281, 211, 231, 402, 238, 350, 187, 243, 198, 405, 186, 216, 362, 270, 190, 309, 303, 185, 203, 182, 359, 184, 191, 193, 235, 291, 203, 218, 214, 195, 328, 297, 183, 200, 251, 300, 237, 373, 334, 196, 211, 192, 265, 210, 438, 210, 228, 316, 242, 264, 194, 329, 344, 287, 183, 189, 191, 186, 298, 191, 276, 264, 276, 340, 242, 266, 304, 199, 406, 232, 376, 185, 183, 233, 287, 201, 179, 248, 242, 217, 218, 227, 272, 193, 271, 416, 204, 233, 191, 193, 197, 322, 356, 207, 277, 207, 331, 304, 229, 259, 307, 192, 181, 332, 299, 193, 220, 183, 226, 195, 205, 267, 248, 228, 186, 293, 194, 235, 280, 357, 230, 193, 382, 195, 270, 190, 208, 229, 185, 231, 210, 187, 217, 367, 314, 213, 339, 201, 203, 186, 226, 238, 215, 193, 193, 201, 355, 180, 292, 233, 300, 427, 183, 192, 234, 197, 210, 210, 270, 232, 324, 315, 360, 204, 241, 380, 214, 318, 296, 221, 199, 259, 199, 220, 322, 236, 198, 210, 333, 230, 210, 188, 216, 187, 244, 228, 248, 203, 241, 201, 361, 274, 243, 275, 337, 253, 201, 266, 260, 293, 462, 357, 310, 385, 369, 309, 247, 200, 207, 406, 214, 235, 287, 288, 287, 179, 235, 189, 307, 196, 224, 191, 236, 369, 265, 211, 304, 421, 272, 195, 296, 209, 231, 261, 284, 184, 275, 189, 206, 236, 323, 222, 266, 266, 295, 405, 268, 239, 204, 206, 221, 330, 261, 283, 263, 284, 178, 305, 253, 387, 255, 239, 183, 339, 207, 211, 214, 248, 269, 245, 186, 258, 276, 305, 302, 182, 312, 307, 252, 243, 207, 410, 230, 246, 400, 205, 208, 271, 330, 297, 239, 231, 327, 330, 184, 244, 243, 216, 240, 202, 209, 180, 320, 184, 343, 304, 202, 216, 213, 186, 184, 248, 198, 224, 237, 278, 258, 253, 435, 331, 189, 308, 242, 396, 239, 238, 253, 406, 209, 206, 218, 215, 334, 236, 355, 220, 179, 320, 344, 208, 187, 188, 218, 195, 186, 198, 211, 196, 260, 298, 179, 220, 185, 408, 236, 316, 204, 190, 290, 199, 203, 290, 303, 251, 270, 249, 277, 271, 341, 487, 224, 333, 180, 200, 196, 292, 236, 215, 198, 228, 283, 323, 294, 355, 241, 213, 220, 223, 190, 212, 236, 238, 319, 199, 255, 356, 314, 281, 191, 234, 224, 191, 186, 246, 287, 303, 276, 264, 312, 232, 307, 229, 191, 253, 228, 326, 283, 327, 231, 255, 229, 237, 235, 247, 182, 232, 198, 185, 228, 325, 186, 247, 224, 179, 196, 286, 322, 179, 181, 323, 259, 210, 184, 183, 327, 200, 209, 230, 283, 228, 294, 226, 190, 184, 214, 224, 197, 307, 220, 248, 388, 260, 190, 294, 188, 195, 252, 260, 222, 236, 307, 210, 215, 214, 191, 401, 238, 195, 187, 197, 243, 225, 184, 249, 396, 344, 423, 205, 221, 224, 202, 186, 292, 269, 325, 224, 297, 344, 192, 243, 289, 215, 317, 226, 190, 291, 275, 208, 246, 260, 340, 313, 340, 206, 216, 335, 211, 229, 389, 277, 462, 307, 209, 237, 282, 183, 231, 243, 202, 198, 235, 324, 214, 328, 361, 258, 195, 224, 208, 206, 205, 223, 298, 185, 224, 224, 223, 292, 265, 236, 279, 206, 191, 192, 269, 275, 222, 220, 229, 229, 225, 238, 236, 225, 269, 321, 180, 207, 247, 228, 183, 189, 375, 354, 199, 213, 245, 233, 302, 320, 283, 179, 398, 184, 191, 252, 189, 213, 189, 318, 388, 236, 273, 208, 228, 208, 334, 188, 225, 338, 193, 207, 217, 208, 236, 197, 202, 261, 231, 205, 204, 179, 206, 250, 255, 215, 261, 214, 185, 241, 321, 240, 195, 314, 195, 192, 192, 257, 253, 304, 198, 258, 242, 192, 196, 324, 190, 284, 238, 267, 204, 284, 316, 217, 191, 244, 237, 209, 297, 272, 294, 239, 369, 238, 178, 289, 202, 197, 192, 274, 224, 283, 197, 209, 270, 210, 268, 219, 309, 222, 196, 229, 222, 210, 312, 220, 356, 315, 198, 194, 289, 280, 219, 191, 238, 191, 225, 221, 252, 273, 258, 282, 304, 375, 218, 264, 240, 225, 192, 252, 188, 193, 205, 245, 265, 193, 268, 260, 200, 204, 338, 266, 188, 261, 285, 185, 315, 235, 207, 249, 344, 393, 323, 193, 318, 267, 219, 201, 242, 189, 187, 246, 179, 334, 211, 212, 258, 244, 305, 262, 183, 360, 217, 270, 186, 239, 227, 245, 371, 187, 262, 336, 237, 228, 212, 316, 189, 212, 288, 263, 397, 343, 307, 243, 191, 274, 204, 202, 184, 191, 223, 314, 402, 365, 247, 324, 222, 243, 377, 339, 191, 251, 205, 261, 364, 212, 242, 216, 269, 205, 216, 447, 253, 214, 181, 215, 337, 288, 226, 242, 234, 386, 354, 345, 210, 206, 287, 281, 263, 340, 220, 405, 336, 463, 253, 182, 211, 286, 190, 190, 345, 234, 237, 247, 191, 219, 304, 333, 238, 243, 238, 357, 218, 191, 294, 190, 290, 187, 248, 190, 348, 203, 211, 223, 179, 264, 207, 194, 274, 187, 215, 179, 259, 363, 186, 369, 196, 188, 196, 197, 267, 224, 222, 199, 245, 336, 337, 266, 281, 219, 331, 197, 206, 207, 234, 346, 294, 196, 211, 202, 248, 368, 230, 297, 306, 195, 226, 180, 310, 191, 205, 244, 248, 205, 190, 187, 220, 220, 217, 222, 214, 269, 207, 303, 346, 243, 182, 199, 285, 188, 187, 233, 249, 234, 217, 252, 229, 427, 217, 218, 269, 385, 258, 269, 198, 273, 336, 208, 233, 191, 187, 226, 251, 307, 303, 212, 352, 364, 195, 220, 268, 190, 301, 298, 230, 268, 200, 377, 215, 198, 183, 213, 221, 177, 271, 299, 408, 227, 239, 290, 182, 405, 245, 194, 311, 196, 227, 295, 448, 392, 298, 321, 204, 320, 191, 195, 229, 193, 301, 204, 183, 226, 267, 254, 306, 253, 181, 180, 255, 193, 298, 372, 198, 199, 189, 267, 400, 202, 243, 346, 190, 196, 201, 366, 186, 206, 267, 245, 262, 251, 182, 243, 240, 437, 226, 240, 299, 197, 233, 232, 263, 302, 243, 271, 277, 180, 192, 180, 302, 187, 283, 265, 464, 265, 425, 195, 288, 314, 314, 248, 283, 192, 302, 187, 224, 216, 280, 360, 251, 231, 394, 239, 313, 312, 184, 213, 263, 203, 308, 212, 194, 286, 204, 399, 260, 185, 239, 186, 199, 206, 197, 241, 328, 333, 209, 351, 284, 297, 217, 250, 180, 208, 380, 312, 220, 185, 263, 195, 224, 208, 265, 263, 233, 178, 250, 277, 259, 286, 212, 194, 191, 294, 180, 185, 371, 238, 409, 250, 289, 295, 183, 289, 229, 343, 195, 273, 243, 384, 215, 298, 404, 224, 257, 247, 209, 328, 199, 337, 308, 283, 217, 188, 312, 228, 363, 244, 271, 440, 210, 229, 293, 178, 192, 218, 181, 267, 285, 204, 241, 189, 285, 240, 228, 196, 269, 211, 210, 243, 179, 321, 445, 295, 323, 478, 210, 179, 253, 257, 340, 191, 285, 265, 185, 371, 261, 354, 221, 439, 271, 305, 260, 210, 186, 293, 358, 287, 183, 265, 188, 273, 228, 212, 212, 448, 233, 214, 215, 219, 324, 214, 190, 266, 246, 224, 202, 300, 267, 198, 272, 274, 298, 300, 297, 317, 206, 247, 239, 266, 438, 215, 190, 377, 197, 187, 193, 238, 238, 347, 386, 254, 261, 231, 386, 189, 182, 264, 244, 315, 234, 230, 229, 239, 186, 200, 191, 269, 267, 496, 260, 385, 239, 298, 206, 251, 304, 328, 246, 207, 209, 404, 261, 200, 246, 197, 295, 299, 186, 228, 359, 284, 202, 183, 219, 336, 452, 229, 249, 182, 236, 292, 309, 348, 264, 188, 338, 206, 309, 274, 268, 204, 254, 244, 204, 204, 196, 243, 280, 307, 403, 322, 201, 377, 271, 200, 195, 191, 245, 182, 339, 314, 256, 202, 287, 193, 319, 257, 183, 227, 201, 389, 191, 271, 332, 265, 213, 214, 295, 213, 188, 234, 233, 193, 218, 225, 200, 204, 265, 227, 312, 482, 232, 215, 270, 336, 264, 294, 334, 390, 281, 231, 257, 180, 259, 250, 209, 196, 264, 225, 188, 236, 383, 229, 193, 191, 321, 249, 363, 258, 198, 214, 194, 342, 192, 235, 211, 219, 243, 234, 369, 233, 197, 317, 203, 284, 251, 243, 335, 366, 200, 258, 410, 190, 219, 287, 196, 322, 184, 203, 228, 288, 209, 194, 257, 206, 228, 476, 249, 279, 276, 296, 302, 315, 303, 242, 186, 197, 235, 193, 276, 216, 216, 261, 301, 276, 298, 296, 194, 185, 209, 286, 304, 292, 212, 190, 279, 251, 327, 197, 215, 219, 243, 238, 214, 254, 210, 247, 200, 292, 316, 421, 224, 290, 220, 233, 266, 203, 210, 246, 301, 261, 237, 299, 183, 186, 196, 302, 212, 348, 388, 243, 183, 197, 218, 231, 320, 215, 238, 397, 227, 226, 475, 206, 233, 347, 204, 189, 234, 229, 297, 248, 228, 232, 329, 181, 196, 343, 229, 199, 257, 292, 307, 245, 281, 185, 216, 193, 300, 188, 256, 212, 260, 312, 279, 206, 220, 357, 192, 225, 258, 200, 196, 290, 360, 181, 285, 250, 416, 228, 201, 284, 228, 180, 316, 268, 393, 285, 202, 225, 178, 326, 225, 287, 183, 180, 434, 275, 287, 223, 238, 182, 416, 256, 295, 216, 193, 270, 330, 340, 206, 417, 247, 208, 275, 208, 228, 185, 298, 266, 313, 485, 265, 190, 398, 197, 239, 272, 316, 349, 217, 215, 179, 290, 254, 446, 184, 482, 284, 311, 241, 263, 274, 250, 316, 385, 234, 215, 182, 386, 261, 196, 185, 202, 210, 265, 384, 228, 236, 216, 225, 323, 278, 188, 280, 235, 221, 205, 270, 480, 208, 215, 237, 207, 183, 212, 296, 234, 195, 195, 320, 205, 273, 202, 259, 301, 397, 292, 194, 194, 199, 190, 290, 381, 182, 269, 191, 204, 207, 346, 187, 333, 176, 212, 275, 317, 231, 200, 339, 238, 273, 237, 289, 186, 206, 235, 286, 277, 250, 368, 211, 265, 177, 260, 233, 307, 254, 212, 281, 257, 425, 179, 241, 302, 361, 192, 216, 381, 229, 191, 267, 240, 205, 254, 214, 193, 290, 336, 233, 203, 293, 207, 222, 182, 181, 271, 193, 234, 204, 317, 199, 195, 252, 192, 386, 280, 192, 205, 347, 250, 350, 191, 191, 250, 260, 265, 228, 239, 189, 183, 273, 179, 480, 190, 330, 209, 260, 237, 187, 209, 228, 209, 266, 245, 271, 206, 178, 331, 212, 292, 256, 215, 241, 184, 213, 222, 190, 437, 271, 298, 210, 184, 307, 242, 397, 200, 206, 194, 425, 253, 192, 226, 272, 259, 193, 452, 249, 238, 231, 212, 242, 361, 185, 197, 285, 230, 258, 189, 333, 212, 283, 212, 184, 340, 201, 250, 296, 242, 185, 225, 202, 297, 216, 222, 194, 278, 216, 226, 308, 200, 181, 206, 241, 257, 284, 192, 291, 221, 219, 352, 227, 226, 194, 191, 177, 254, 481, 194, 192, 201, 371, 194, 199, 207, 219, 230, 395, 281, 210, 204, 222, 197, 255, 206, 297, 190, 428, 185, 231, 194, 232, 366, 183, 204, 202, 271, 328, 217, 252, 192, 371, 250, 179, 184, 244, 189, 230, 196, 255, 223, 182, 262, 321, 230, 257, 469, 240, 183, 284, 305, 262, 193, 414, 292, 233, 247, 335, 236, 228, 197, 287, 182, 193, 242, 272, 229, 194, 263, 281, 205, 259, 184, 258, 195, 212, 296, 243, 310, 283, 197, 294, 354, 227, 275, 326, 229, 185, 223, 374, 232, 421, 268, 272, 311, 440, 207, 234, 242, 279, 360, 210, 183, 200, 202, 307, 279, 296, 283, 307, 235, 190, 306, 192, 259, 273, 247, 237, 203, 305, 276, 244, 276, 302, 195, 322, 347, 266, 280, 230, 352, 262, 198, 201, 297, 194, 184, 189, 246, 202, 202, 234, 225, 204, 189, 267, 212, 217, 254, 183, 186, 242, 294, 210, 215, 241, 188, 330, 214, 214, 214, 209, 182, 187, 194, 215, 272, 255, 178, 269, 181, 237, 316, 269, 227, 217, 222, 194, 472, 356, 189, 205, 286, 197, 309, 213, 291, 188, 293, 271, 322, 265, 287, 209, 308, 285, 239, 189, 217, 238, 266, 212, 246, 278, 180, 338, 332, 301, 359, 242, 255, 328, 361, 283, 204, 194, 231, 198, 232, 336, 336, 178, 202, 309, 304, 258, 183, 327, 262, 294, 372, 224, 203, 189, 222, 312, 275, 265, 429, 186, 238, 312, 364, 297, 283, 259, 287, 396, 244, 239, 229, 285, 197, 280, 189, 195, 200, 210, 265, 190, 323, 441, 323, 224, 239, 211, 235, 295, 228, 197, 188, 223, 326, 247, 182, 209, 310, 211, 211, 292, 286, 215, 197, 264, 277, 268, 283, 223, 191, 181, 321, 200, 213, 279, 181, 203, 212, 320, 185, 197, 294, 188, 255, 289, 249, 275, 301, 287, 228, 193, 272, 290, 372, 225, 233, 180, 374, 193, 220, 321, 311, 183, 288, 303, 249, 191, 419, 404, 221, 196, 280, 193, 206, 263, 245, 417, 316, 188, 192, 187, 182, 324, 201, 241, 296, 258, 217, 222, 211, 185, 186, 367, 477, 192, 295, 390, 241, 182, 219, 225, 209, 320, 317, 307, 322, 259, 237, 196, 188, 284, 206, 253, 183, 192, 291, 232, 236, 286, 331, 329, 195, 216, 278, 418, 182, 298, 233, 265, 227, 191, 206, 337, 198, 358, 343, 192, 216, 254, 210, 187, 238, 203, 178, 290, 250, 241, 221, 347, 231, 241, 255, 199, 241, 332, 187, 398, 188, 261, 195, 202, 220, 201, 241, 312, 313, 269, 248, 247, 272, 192, 302, 202, 186, 280, 185, 224, 308, 248, 217, 203, 190, 192, 185, 226, 271, 281, 208, 202, 286, 185, 412, 280, 249, 327, 199, 212, 271, 272, 371, 182, 222, 438, 295, 402, 190, 234, 267, 224, 179, 222, 320, 321, 262, 403, 225, 200, 277, 266, 197, 286, 181, 203, 224, 252, 300, 255, 263, 177, 275, 199, 222, 201, 239, 202, 208, 191, 269, 217, 247, 267, 200, 187, 224, 181, 215, 216, 220, 339, 408, 240, 300, 182, 252, 181, 226, 345, 243, 253, 244, 439, 228, 210, 208, 248, 210, 197, 227, 195, 238, 310, 222, 362, 225, 187, 194, 232, 234, 250, 248, 240, 201, 192, 193, 258, 311, 199, 183, 181, 184, 370, 201, 240, 279, 315, 272, 192, 208, 268, 199, 338, 246, 187, 190, 282, 320, 343, 266, 254, 252, 190, 183, 236, 223, 197, 342, 340, 187, 358, 388, 210, 374, 304, 257, 218, 179, 182, 189, 253, 237, 195, 270, 222, 246, 216, 221, 257, 192, 207, 245, 221, 375, 294, 198, 202, 184, 227, 366, 281, 188, 184, 275, 182, 196, 198, 284, 198, 345, 252, 337, 234, 213, 350, 261, 195, 298, 206, 219, 339, 179, 190, 226, 228, 222, 236, 201, 295, 277, 203, 313, 260, 217, 281, 349, 383, 365, 315, 189, 194, 291, 289, 201, 277, 237, 212, 276, 239, 364, 266, 314, 244, 380, 195, 235, 294, 182, 190, 204, 183, 263, 235, 192, 184, 187, 247, 182, 246, 206, 202, 290, 203, 332, 210, 236, 481, 208, 251, 222, 271, 342, 279, 197, 267, 191, 179, 378, 335, 229, 241, 200, 181, 249, 197, 184, 221, 198, 205, 289, 234, 225, 284, 232, 240, 247, 179, 321, 318, 262, 240, 238, 188, 223, 184, 188, 259, 395, 256, 231, 194, 234, 192, 235, 426, 237, 189, 224, 199, 248, 214, 299, 333, 196, 225, 201, 245, 223, 183, 273, 322, 208, 237, 209, 313, 214, 179, 222, 204, 334, 179, 227, 264, 197, 207, 195, 189, 179, 229, 264, 198, 220, 278, 256, 361, 194, 378, 269, 203, 286, 194, 279, 190, 259, 181, 197, 377, 188, 197, 210, 284, 194, 202, 252, 197, 275, 236, 233, 340, 280, 225, 312, 237, 243, 290, 194, 193, 185, 181, 203, 198, 204, 194, 215, 198, 365, 215, 188, 181, 205, 239, 268, 231, 345, 190, 207, 304, 350, 339, 218, 214, 293, 237, 257, 193, 193, 330, 345, 189, 426, 193, 188, 429, 255, 216, 205, 383, 258, 182, 207, 187, 225, 315, 468, 210, 208, 189, 261, 206, 364, 251, 181, 353, 283, 319, 415, 190, 288, 376, 239, 344, 179, 188, 342, 240, 257, 321, 234, 242, 203, 217, 237, 221, 236, 183, 225, 208, 341, 211, 297, 252, 372, 275, 276, 364, 389, 321, 242, 272, 223, 205, 190, 179, 190, 190, 258, 218, 210, 190, 253, 191, 308, 303, 276, 243, 270, 224, 299, 196, 197, 244, 258, 201, 313, 231, 180, 321, 274, 204, 214, 411, 450, 355, 197, 218, 366, 364, 264, 362, 188, 218, 197, 222, 400, 214, 213, 406, 250, 213, 281, 248, 397, 208, 185, 209, 234, 277, 356, 193, 254, 335, 381, 342, 197, 311, 187, 364, 185, 190, 237, 186, 389, 288, 219, 195, 260, 185, 252, 216, 287, 233, 260, 231, 308, 343, 229, 215, 255, 239, 248, 271, 419, 188, 189, 264, 360, 204, 183, 310, 263, 282, 263, 261, 179, 217, 255, 263, 349, 407, 208, 315, 320, 244, 193, 193, 185, 200, 481, 221, 305, 177, 184, 243, 211, 313, 192, 202, 188, 189, 220, 265, 282, 180, 318, 183, 214, 319, 234, 180, 242, 285, 239, 402, 229, 234, 244, 308, 228, 299, 213, 249, 238, 207, 336, 251, 214, 214, 312, 231, 437, 194, 214, 273, 202, 225, 221, 262, 229, 238, 200, 186, 210, 209, 206, 239, 221, 250, 285, 330, 342, 223, 218, 308, 275, 191, 295, 196, 263, 280, 263, 196, 280, 228, 181, 242, 190, 280, 374, 188, 315, 215, 316, 241, 202, 272, 200, 225, 185, 253, 250, 228, 207, 222, 312, 198, 269, 363, 214, 273, 274, 258, 266, 235, 268, 238, 249, 230, 366, 186, 260, 220, 272, 219, 254, 264, 212, 231, 203, 270, 332, 225, 331, 189, 202, 205, 310, 202, 212, 189, 272, 235, 192, 204, 379, 195, 179, 246, 201, 191, 443, 194, 324, 259, 190, 362, 182, 210, 191, 186, 245, 362, 203, 209, 319, 221, 281, 226, 331, 217, 415, 264, 301, 178, 491, 202, 202, 237, 175, 291, 250, 307, 418, 189, 323, 200, 310, 194, 240, 338, 304, 201, 262, 260, 193, 261, 196, 316, 186, 217, 389, 213, 306, 214, 382, 271, 196, 261, 289, 239, 303, 307, 215, 379, 243, 402, 221, 269, 230, 192, 290, 444, 329, 303, 207, 260, 189, 247, 349, 185, 207, 222, 256, 233, 215, 189, 285, 478, 345, 357, 228, 290, 199, 229, 222, 342, 188, 194, 228, 347, 410, 297, 238, 263, 409, 200, 267, 225, 204, 197, 269, 205, 181, 328, 203, 327, 348, 378, 398, 263, 337, 193, 293, 220, 408, 185, 270, 278, 190, 216, 255, 224, 190, 205, 271, 249, 301, 344, 236, 177, 327, 387, 183, 254, 402, 250, 369, 255, 310, 286, 345, 212, 199, 324, 240, 183, 182, 207, 217, 252, 340, 195, 210, 331, 193, 190, 228, 196, 227, 181, 224, 216, 312, 221, 230, 210, 237, 441, 189, 377, 266, 210, 248, 359, 318, 303, 267, 191, 476, 244, 341, 261, 215, 269, 209, 322, 230, 253, 268, 187, 192, 232, 217, 240, 182, 348, 219, 186, 283, 358, 241, 183, 331, 208, 276, 211, 430, 272, 192, 213, 488, 202, 398, 195, 351, 291, 225, 244, 243, 225, 231, 235, 220, 223, 204, 272, 345, 370, 383, 354, 330, 384, 186, 200, 218, 268, 323, 217, 233, 182, 301, 213, 200, 214, 178, 217, 276, 193, 278, 198, 317, 343, 204, 220, 190, 224, 182, 487, 182, 225, 233, 380, 188, 197, 199, 189, 183, 306, 208, 271, 308, 192, 385, 198, 277, 191, 225, 191, 243, 184, 229, 200, 300, 242, 419, 342, 185, 307, 270, 260, 369, 234, 286, 269, 250, 289, 200, 352, 330, 186, 286, 241, 203, 405, 276, 201, 193, 371, 204, 186, 319, 227, 228, 193, 304, 246, 224, 299, 191, 269, 209, 206, 190, 266, 422, 213, 304, 319, 216, 291, 356, 191, 221, 297, 360, 241, 205, 193, 215, 181, 348, 198, 283, 468, 241, 182, 226, 265, 278, 232, 184, 212, 231, 183, 307, 287, 275, 338, 216, 346, 234, 311, 265, 189, 228, 220, 366, 272, 311, 243, 319, 324, 227, 202, 211, 230, 236, 210, 226, 284, 189, 190, 209, 221, 339, 183, 210, 297, 233, 222, 287, 206, 282, 233, 339, 212, 226, 224, 262, 208, 324, 356, 205, 195, 289, 362, 268, 211, 360, 237, 374, 213, 275, 196, 189, 218, 333, 216, 223, 336, 249, 309, 272, 234, 200, 204, 210, 195, 222, 212, 258, 289, 357, 187, 328, 288, 191, 391, 216, 208, 334, 183, 205, 203, 220, 248, 200, 285, 271, 197, 359, 226, 230, 210, 199, 194, 178, 223, 175, 235, 259, 185, 222, 222, 345, 177, 307, 390, 187, 286, 213, 256, 457, 310, 206, 271, 189, 192, 201, 258, 247, 195, 202, 194, 179, 190, 189, 179, 211, 180, 242, 221, 268, 252, 188, 266, 208, 186, 183, 188, 310, 209, 189, 239, 219, 207, 281, 243, 365, 185, 261, 271, 256, 237, 254, 223, 254, 198, 212, 285, 249, 372, 325, 452, 290, 451, 299, 196, 185, 234, 185, 459, 200, 287, 193, 352, 259, 190, 248, 199, 211, 297, 223, 230, 331, 338, 193, 199, 211, 268, 188, 242, 263, 354, 235, 197, 188, 282, 229, 246, 189, 182, 301, 200, 225, 196, 265, 186, 360, 227, 228, 440, 191, 331, 185, 217, 206, 185, 311, 204, 239, 235, 337, 183, 187, 200, 218, 180, 192, 430, 233, 292, 196, 190, 215, 199, 364, 188, 241, 285, 205, 308, 296, 192, 275, 215, 199, 239, 198, 284, 233, 189, 214, 373, 209, 278, 211, 321, 188, 249, 274, 231, 291, 258, 196, 273, 263, 414, 203, 276, 241, 242, 195, 239, 189, 188, 422, 284, 249, 452, 201, 424, 351, 268, 334, 397, 248, 242, 197, 324, 204, 230, 215, 260, 392, 240, 208, 229, 226, 380, 205, 244, 180, 188, 252, 219, 206, 216, 187, 310, 351, 218, 279, 207, 210, 287, 319, 236, 191, 178, 200, 338, 272, 283, 192, 319, 237, 244, 191, 267, 202, 181, 180, 266, 195, 322, 181, 334, 270, 217, 231, 250, 366, 409, 198, 213, 312, 236, 244, 190, 231, 202, 189, 190, 276, 253, 201, 214, 241, 344, 188, 188, 209, 198, 213, 182, 201, 325, 267, 213, 251, 409, 236, 190, 182, 246, 204, 197, 200, 329, 207, 240, 237, 186, 246, 192, 237, 310, 268, 249, 197, 258, 218, 233, 420, 352, 332, 234, 188, 196, 314, 224, 193, 198, 223, 237, 326, 310, 207, 255, 196, 314, 296, 191, 201, 197, 204, 242, 398, 283, 258, 206, 193, 185, 303, 186, 188, 235, 258, 211, 234, 194, 198, 184, 317, 262, 183, 373, 305, 195, 273, 247, 266, 277, 302, 214, 202, 250, 188, 444, 324, 252, 182, 292, 418, 198, 252, 275, 181, 223, 239, 358, 393, 189, 194, 199, 192, 226, 271, 253, 194, 197, 246, 473, 198, 212, 380, 236, 337, 187, 375, 370, 259, 376, 232, 207, 219, 312, 255, 318, 246, 388, 230, 181, 249, 198, 388, 193, 201, 260, 210, 316, 364, 352, 250, 260, 183, 384, 340, 177, 284, 207, 221, 358, 268, 214, 310, 299, 194, 228, 190, 182, 243, 182, 195, 189, 375, 260, 258, 242, 396, 268, 228, 394, 271, 205, 299, 290, 291, 190, 280, 258, 200, 262, 297, 423, 290, 189, 230, 352, 218, 185, 315, 251, 266, 207, 280, 185, 234, 261, 221, 371, 274, 185, 247, 186, 227, 306, 243, 215, 278, 219, 212, 374, 206, 187, 203, 184, 184, 386, 190, 306, 290, 234, 296, 229, 231, 187, 248, 177, 248, 226, 280, 190, 182, 268, 390, 191, 280, 239, 182, 181, 235, 203, 231, 238, 248, 351, 337, 430, 188, 236, 263, 305, 258, 287, 208, 304, 179, 323, 295, 217, 218, 188, 224, 226, 284, 311, 211, 369, 217, 208, 237, 227, 335, 260, 264, 181, 273, 310, 186, 178, 281, 351, 282, 240, 252, 192, 204, 201, 376, 253, 323, 215, 187, 364, 291, 294, 277, 267, 232, 214, 378, 200, 226, 214, 283, 212, 294, 203, 253, 252, 192, 287, 177, 297, 300, 192, 179, 227, 227, 300, 224, 198, 195, 238, 213, 196, 274, 394, 345, 221, 244, 220, 238, 209, 192, 242, 468, 183, 192, 222, 191, 266, 234, 206, 301, 197, 212, 290, 401, 296, 232, 203, 202, 291, 259, 282, 297, 239, 308, 220, 215, 208, 209, 193, 291, 214, 239, 232, 191, 206, 211, 221, 268, 192, 248, 306, 269, 205, 312, 225, 281, 198, 311, 360, 235, 207, 229, 383, 287, 225, 203, 267, 244, 360, 188, 431, 193, 191, 238, 318, 229, 322, 248, 342, 301, 312, 180, 279, 189, 294, 414, 186, 216, 193, 215, 259, 200, 259, 326, 192, 288, 193, 300, 203, 327, 276, 193, 462, 227, 190, 356, 279, 414, 239, 187, 236, 251, 205, 191, 189, 292, 202, 182, 220, 228, 287, 180, 232, 201, 306, 266, 227, 240, 390, 228, 340, 279, 209, 199, 274, 190, 181, 304, 192, 201, 183, 219, 246, 297, 289, 192, 419, 214, 312, 204, 305, 203, 431, 321, 209, 267, 197, 271, 269, 227, 294, 183, 185, 307, 179, 394, 350, 278, 346, 205, 197, 410, 222, 250, 215, 338, 338, 382, 337, 290, 217, 218, 210, 286, 180, 207, 194, 198, 225, 208, 181, 211, 253, 333, 212, 226, 257, 299, 201, 190, 429, 201, 188, 253, 445, 181, 208, 314, 356, 464, 362, 213, 260, 262, 229, 224, 304, 317, 209, 328, 188, 186, 216, 186, 192, 271, 197, 216, 239, 318, 229, 430, 221, 292, 241, 273, 275, 230, 198, 259, 238, 211, 246, 186, 336, 270, 223, 308, 196, 201, 242, 195, 211, 210, 224, 213, 284, 285, 225, 221, 229, 218, 193, 308, 181, 207, 262, 306, 253, 212, 194, 258, 184, 267, 185, 184, 219, 309, 187, 290, 249, 180, 196, 250, 260, 250, 267, 195, 204, 250, 208, 311, 185, 232, 197, 249, 248, 204, 195, 233, 204, 217, 453, 312, 269, 228, 206, 191, 205, 253, 330, 294, 310, 184, 317, 275, 284, 288, 217, 217, 198, 272, 204, 246, 291, 356, 224, 320, 262, 204, 213, 280, 286, 495, 207, 261, 227, 386, 289, 180, 216, 242, 183, 193, 279, 220, 308, 214, 204, 239, 179, 317, 256, 428, 342, 243, 234, 227, 196, 294, 228, 260, 434, 300, 235, 374, 319, 212, 187, 216, 192, 189, 283, 211, 276, 256, 227, 310, 395, 215, 210, 320, 290, 219, 216, 256, 208, 181, 220, 211, 207, 256, 236, 198, 267, 250, 312, 248, 221, 283, 291, 306, 200, 297, 188, 279, 390, 227, 233, 363, 185, 231, 187, 286, 241, 205, 320, 289, 193, 193, 271, 180, 236, 181, 206, 265, 340, 287, 207, 309, 327, 233, 259, 196, 223, 220, 241, 296, 336, 367, 246, 189, 237, 190, 208, 402, 208, 274, 355, 221, 193, 206, 261, 186, 240, 223, 224, 374, 284, 257, 338, 184, 428, 193, 215, 188, 191, 296, 294, 196, 346, 292, 203, 188, 193, 364, 307, 185, 215, 195, 179, 348, 228, 283, 258, 321, 296, 344, 220, 284, 182, 187, 187, 204, 241, 201, 352, 324, 197, 282, 240, 185, 416, 288, 380, 391, 201, 348, 299, 214, 183, 195, 410, 257, 382, 200, 188, 330, 222, 381, 234, 283, 291, 206, 231, 284, 191, 269, 287, 310, 210, 329, 255, 236, 317, 301, 182, 405, 312, 287, 266, 248, 233, 205, 348, 191, 388, 184, 249, 219, 257, 213, 276, 241, 253, 270, 183, 497, 262, 288, 425, 182, 185, 355, 192, 249, 296, 254, 496, 236, 201, 260, 340, 337, 300, 290, 314, 206, 402, 230, 197, 183, 259, 199, 199, 178, 247, 312, 272, 209, 230, 272, 217, 288, 273, 374, 308, 207, 305, 296, 220, 202, 235, 255, 199, 211, 218, 295, 291, 189, 201, 218, 220, 210, 206, 254, 338, 251, 178, 201, 267, 186, 264, 218, 230, 218, 251, 336, 220, 195, 261, 241, 207, 225, 214, 284, 446, 198, 268, 214, 364, 191, 215, 297, 190, 206, 377, 202, 207, 232, 210, 250, 193, 191, 190, 285, 210, 185, 280, 315, 480, 279, 183, 295, 232, 346, 279, 259, 198, 208, 308, 243, 238, 219, 200, 190, 432, 309, 197, 316, 331, 205, 222, 316, 218, 243, 281, 220, 329, 256, 377, 226, 289, 193, 182, 217, 194, 199, 220, 279, 368, 267, 245, 283, 220, 206, 228, 246, 195, 304, 245, 391, 212, 235, 256, 210, 331, 199, 215, 212, 233, 441, 207, 305, 205, 202, 213, 191, 201, 315, 310, 259, 256, 203, 192, 224, 204, 338, 194, 216, 313, 194, 343, 264, 198, 296, 199, 226, 191, 184, 212, 220, 182, 223, 207, 286, 223, 194, 196, 189, 242, 301, 190, 211, 221, 297, 228, 296, 396, 297, 177, 345, 230, 257, 188, 314, 185, 216, 298, 219, 203, 204, 194, 190, 269, 298, 436, 242, 214, 316, 297, 494, 208, 229, 245, 216, 233, 270, 234, 225, 217, 218, 183, 339, 195, 226, 297, 362, 434, 283, 189, 274, 231, 221, 182, 326, 293, 235, 227, 284, 226, 222, 192, 239, 195, 288, 292, 187, 267, 188, 322, 259, 206, 191, 189, 240, 336, 176, 242, 303, 463, 203, 256, 198, 232, 246, 245, 188, 244, 351, 180, 265, 210, 199, 217, 246, 391, 389, 299, 180, 290, 272, 186, 224, 310, 278, 317, 366, 226, 188, 216, 239, 238, 324, 248, 251, 242, 220, 218, 222, 324, 240, 187, 249, 208, 218, 246, 217, 195, 234, 232, 207, 190, 213, 289, 198, 205, 183, 360, 316, 261, 225, 240, 227, 241, 246, 222, 201, 193, 263, 209, 281, 421, 402, 230, 417, 234, 294, 229, 252, 225, 287, 205, 277, 200, 192, 223, 183, 200, 319, 206, 245, 204, 186, 264, 203, 195, 278, 217, 231, 221, 179, 398, 258, 192, 248, 328, 203, 253, 246, 195, 205, 426, 273, 225, 183, 346, 317, 200, 232, 218, 186, 276, 201, 244, 202, 289, 255, 184, 208, 192, 188, 213, 256, 378, 197, 299, 186, 313, 345, 221, 280, 263, 223, 203, 209, 197, 267, 230, 182, 280, 178, 291, 209, 187, 252, 199, 340, 209, 307, 293, 323, 251, 297, 194, 287, 177, 231, 181, 211, 185, 193, 202, 229, 327, 183, 183, 312, 299, 318, 279, 195, 271, 306, 450, 233, 209, 220, 206, 245, 231, 225, 197, 217, 254, 223, 257, 229, 258, 226, 197, 229, 234, 221, 196, 234, 414, 209, 196, 205, 264, 218, 248, 260, 207, 348, 220, 212, 247, 388, 259, 209, 360, 207, 231, 210, 216, 178, 199, 181, 194, 224, 194, 291, 273, 253, 352, 301, 282, 259, 333, 278, 385, 217, 216, 256, 271, 184, 180, 181, 180, 218, 192, 208, 209, 224, 238, 244, 269, 232, 373, 194, 305, 334, 439, 189, 285, 253, 226, 242, 203, 256, 198, 247, 199, 269, 270, 192, 214, 200, 184, 283, 213, 290, 296, 188, 262, 222, 200, 212, 200, 184, 222, 203, 393, 184, 193, 196, 252, 261, 217, 244, 377, 345, 179, 216, 271, 252, 430, 238, 224, 319, 216, 210, 192, 256, 434, 275, 197, 279, 202, 204, 242, 271, 397, 221, 307, 209, 226, 210, 250, 179, 255, 294, 194, 220, 348, 210, 356, 193, 216, 215, 204, 438, 232, 260, 200, 242, 204, 226, 181, 216, 306, 205, 277, 227, 195, 259, 219, 206, 246, 291, 495, 284, 255, 274, 292, 205, 275, 243, 294, 307, 180, 286, 243, 270, 245, 211, 247, 396, 250, 220, 333, 267, 186, 348, 264, 261, 247, 254, 275, 269, 240, 292, 196, 229, 243, 314, 217, 182, 188, 205, 247, 179, 304, 333, 267, 408, 253, 259, 425, 312, 228, 249, 237, 226, 182, 210, 208, 230, 223, 229, 199, 263, 219, 301, 201, 212, 246, 191, 276, 395, 203, 299, 226, 185, 180, 272, 199, 270, 354, 192, 192, 194, 213, 272, 246, 403, 239, 225, 190, 185, 277, 180, 237, 191, 177, 196, 189, 386, 289, 342, 267, 310, 388, 177, 285, 244, 284, 299, 182, 225, 343, 199, 243, 288, 251, 181, 243, 234, 239, 228, 390, 182, 248, 218, 318, 301, 207, 300, 313, 235, 189, 254, 269, 403, 342, 289, 189, 204, 197, 372, 361, 226, 240, 285, 210, 373, 197, 307, 218, 399, 263, 186, 317, 243, 303, 253, 249, 253, 254, 355, 193, 346, 206, 182, 272, 272, 352, 386, 198, 212, 197, 203, 205, 195, 293, 270, 221, 189, 238, 304, 193, 196, 264, 182, 260, 383, 236, 211, 349, 360, 314, 385, 228, 423, 341, 245, 180, 285, 222, 216, 402, 192, 287, 212, 261, 261, 221, 195, 204, 221, 236, 282, 287, 255, 278, 196, 318, 179, 227, 191, 182, 279, 201, 243, 292, 233, 208, 188, 269, 229, 236, 354, 222, 348, 183, 262, 203, 443, 189, 225, 201, 181, 199, 209, 345, 272, 298, 252, 208, 207, 259, 257, 272, 301, 266, 198, 182, 385, 228, 202, 436, 193, 189, 361, 220, 181, 221, 230, 298, 243, 211, 433, 231, 207, 193, 274, 244, 388, 276, 239, 234, 210, 443, 289, 246, 203, 266, 199, 225, 217, 310, 361, 252, 283, 383, 292, 210, 344, 336, 387, 207, 209, 206, 189, 286, 224, 196, 269, 231, 311, 308, 197, 336, 294, 264, 210, 200, 258, 446, 281, 187, 405, 282, 197, 312, 234, 190, 363, 223, 206, 237, 182, 267, 200, 200, 231, 201, 207, 258, 197, 205, 479, 217, 188, 269, 216, 263, 196, 203, 216, 213, 272, 344, 283, 335, 358, 209, 211, 276, 308, 211, 249, 296, 207, 207, 343, 183, 368, 263, 182, 213, 293, 312, 281, 222, 180, 293, 221, 327, 215, 263, 188, 186, 241, 179, 292, 294, 244, 370, 275, 282, 260, 191, 241, 260, 270, 241, 249, 202, 300, 367, 179, 213, 444, 397, 323, 197, 193, 254, 185, 317, 252, 198, 218, 266, 375, 348, 265, 182, 187, 183, 225, 393, 222, 205, 271, 210, 229, 361, 244, 204, 297, 182, 209, 296, 181, 261, 243, 187, 225, 405, 351, 263, 194, 369, 181, 231, 233, 231, 377, 217, 352, 423, 191, 355, 190, 296, 207, 200, 247, 181, 303, 436, 200, 193, 425, 221, 226, 341, 211, 251, 185, 306, 216, 197, 283, 238, 284, 205, 229, 206, 202, 193, 193, 219, 196, 319, 307, 209, 192, 343, 301, 301, 202, 220, 216, 212, 202, 198, 335, 231, 311, 184, 208, 222, 251, 213, 256, 239, 202, 317, 204, 312, 318, 204, 387, 261, 220, 234, 262, 236, 425, 214, 300, 281, 308, 180, 265, 182, 368, 185, 259, 236, 249, 241, 189, 261, 397, 493, 391, 194, 250, 231, 216, 322, 189, 193, 330, 181, 260, 194, 400, 308, 230, 403, 386, 229, 195, 260, 232, 235, 207, 327, 337, 212, 404, 287, 191, 182, 212, 234, 237, 185, 256, 205, 222, 247, 189, 185, 226, 325, 246, 338, 184, 291, 198, 268, 192, 199, 219, 196, 242, 245, 246, 359, 248, 286, 183, 201, 243, 230, 222, 229, 217, 249, 187, 213, 281, 207, 196, 240, 181, 201, 195, 314, 341, 336, 186, 195, 217, 259, 204, 330, 244, 249, 195, 193, 210, 329, 287, 349, 375, 190, 185, 197, 344, 298, 193, 188, 292, 221, 241, 297, 247, 279, 276, 364, 377, 312, 210, 189, 271, 283, 288, 182, 235, 208, 348, 217, 292, 396, 246, 294, 277, 200, 220, 204, 238, 414, 202, 258, 244, 222, 184, 298, 216, 182, 209, 177, 187, 209, 219, 314, 320, 180, 305, 246, 186, 262, 195, 191, 298, 247, 218, 365, 297, 251, 285, 228, 236, 295, 287, 260, 268, 304, 197, 181, 183, 289, 284, 284, 228, 400, 199, 275, 227, 216, 253, 215, 188, 252, 188, 193, 318, 185, 213, 301, 310, 283, 177, 260, 184, 188, 210, 321, 212, 225, 213, 295, 287, 329, 214, 232, 318, 327, 199, 194, 238, 191, 208, 222, 182, 194, 219, 453, 187, 200, 188, 183, 195, 275, 226, 216, 195, 221, 251, 186, 223, 262, 219, 236, 246, 230, 217, 249, 294, 200, 318, 274, 254, 176, 188, 296, 267, 233, 244, 214, 219, 385, 189, 224, 234, 208, 291, 306, 360, 284, 198, 188, 186, 234, 203, 183, 211, 305, 270, 292, 217, 274, 256, 308, 455, 282, 391, 285, 249, 202, 301, 217, 340, 181, 354, 351, 184, 410, 216, 184, 259, 214, 212, 219, 218, 198, 235, 186, 235, 200, 280, 215, 292, 183, 290, 205, 227, 223, 231, 203, 289, 274, 283, 274, 243, 233, 194, 181, 375, 245, 378, 188, 211, 233, 249, 327, 220, 299, 407, 203, 256, 270, 238, 466, 189, 269, 202, 213, 264, 388, 220, 233, 270, 199, 267, 226, 228, 190, 254, 196, 188, 204, 364, 264, 283, 217, 198, 264, 306, 178, 230, 258, 211, 224, 308, 251, 397, 197, 264, 204, 292, 194, 285, 271, 209, 189, 244, 257, 216, 216, 227, 264, 392, 228, 228, 228, 223, 211, 256, 251, 276, 240, 333, 276, 177, 204, 194, 202, 205, 289, 200, 245, 224, 196, 221, 197, 464, 231, 255, 200, 264, 358, 216, 250, 211, 191, 194, 265, 221, 207, 288, 212, 264, 234, 251, 461, 222, 405, 183, 256, 214, 219, 246, 265, 185, 186, 211, 209, 462, 230, 201, 181, 278, 229, 213, 220, 230, 220, 275, 206, 255, 225, 290, 197, 228, 257, 404, 207, 203, 272, 190, 269, 366, 214, 200, 244, 261, 278, 230, 194, 318, 206, 273, 246, 216, 203, 232, 232, 220, 294, 209, 224, 250, 281, 222, 212, 253, 415, 334, 291, 191, 234, 191, 215, 335, 188, 237, 282, 252, 228, 313, 283, 258, 203, 434, 202, 183, 179, 209, 192, 211, 370, 189, 194, 254, 277, 198, 189, 186, 180, 248, 188, 238, 267, 262, 290, 288, 206, 286, 266, 187, 190, 342, 204, 293, 250, 245, 319, 248, 201, 182, 312, 224, 200, 197, 219, 183, 192, 184, 181, 210, 213, 190, 228, 456, 302, 269, 273, 218, 341, 182, 331, 492, 249, 274, 217, 377, 187, 426, 215, 373, 202, 216, 272, 264, 224, 191, 196, 200, 345, 262, 348, 283, 208, 266, 229, 312, 305, 219, 233, 348, 334, 235, 189, 225, 206, 210, 237, 293, 312, 215, 291, 274, 488, 272, 340, 214, 231, 201, 212, 258, 271, 185, 296, 446, 248, 274, 388, 188, 231, 214, 322, 300, 221, 229, 378, 314, 229, 207, 455, 211, 458, 259, 256, 330, 236, 287, 213, 265, 457, 246, 199, 212, 179, 187, 253, 317, 192, 249, 312, 333, 255, 301, 252, 249, 220, 232, 272, 457, 308, 231, 194, 266, 247, 236, 227, 258, 295, 356, 251, 261, 301, 195, 229, 233, 231, 239, 201, 222, 220, 407, 185, 273, 187, 233, 227, 296, 286, 238, 312, 191, 211, 189, 285, 451, 353, 266, 255, 281, 243, 207, 184, 271, 442, 199, 206, 285, 215, 184, 204, 358, 265, 210, 227, 181, 244, 357, 225, 368, 183, 271, 419, 211, 237, 193, 305, 198, 187, 230, 256, 185, 268, 189, 469, 381, 224, 264, 241, 184, 269, 187, 228, 290, 237, 201, 320, 331, 269, 200, 213, 267, 303, 211, 249, 280, 290, 332, 465, 393, 197, 220, 204, 317, 225, 187, 454, 287, 215, 203, 217, 242, 190, 186, 230, 183, 233, 216, 265, 181, 223, 215, 191, 199, 382, 334, 210, 183, 216, 223, 213, 330, 427, 231, 216, 195, 193, 206, 304, 311, 312, 272, 233, 284, 462, 260, 314, 380, 229, 257, 246, 279, 232, 197, 218, 219, 204, 309, 245, 347, 179, 248, 365, 276, 383, 293, 217, 287, 311, 185, 271, 180, 311, 367, 211, 299, 252, 184, 192, 304, 309, 184, 184, 297, 248, 363, 218, 246, 213, 213, 418, 274, 208, 239, 255, 251, 308, 255, 206, 206, 203, 221, 350, 232, 217, 193, 236, 257, 283, 185, 226, 193, 200, 179, 218, 253, 249, 264, 251, 206, 306, 202, 333, 304, 195, 215, 373, 179, 323, 403, 391, 305, 310, 257, 228, 183, 200, 194, 390, 189, 197, 201, 358, 299, 247, 183, 234, 244, 220, 292, 293, 186, 219, 263, 273, 240, 201, 302, 317, 186, 349, 182, 209, 303, 266, 196, 289, 254, 398, 363, 374, 255, 209, 314, 191, 190, 216, 190, 200, 179, 195, 252, 303, 317, 231, 262, 215, 359, 210, 217, 273, 320, 201, 225, 307, 291, 199, 280, 223, 241, 426, 214, 270, 326, 217, 242, 235, 260, 356, 179, 227, 196, 364, 190, 183, 256, 201, 221, 202, 256, 273, 189, 209, 320, 212, 187, 328, 460, 405, 178, 287, 231, 194, 228, 255, 227, 198, 277, 228, 185, 184, 320, 301, 228, 201, 356, 217, 258, 425, 224, 251, 192, 238, 313, 284, 236, 374, 321, 273, 402, 186, 241, 214, 191, 288, 275, 292, 236, 229, 188, 196, 192, 216, 317, 198, 320, 494, 229, 219, 202, 253, 340, 268, 401, 312, 253, 255, 254, 340, 223, 215, 371, 233, 184, 312, 375, 222, 181, 347, 195, 205, 181, 349, 225, 290, 223, 313, 347, 194, 405, 202, 370, 201, 233, 340, 274, 209, 239, 231, 249, 378, 215, 202, 213, 334, 219, 208, 208, 304, 181, 242, 278, 188, 201, 219, 385, 365, 299, 244, 243, 317, 242, 329, 240, 289, 347, 192, 240, 249, 291, 243, 208, 220, 271, 461, 216, 228, 187, 220, 199, 386, 297, 473, 241, 204, 205, 440, 265, 231, 231, 347, 285, 196, 314, 182, 329, 200, 178, 210, 198, 241, 202, 230, 211, 214, 225, 201, 220, 339, 226, 193, 216, 186, 236, 227, 180, 254, 187, 310, 206, 225, 189, 183, 260, 203, 204, 351, 284, 240, 232, 206, 209, 218, 296, 185, 217, 264, 254, 221, 252, 195, 265, 240, 372, 199, 271, 297, 248, 289, 247, 239, 243, 198, 203, 295, 416, 299, 219, 204, 187, 191, 224, 263, 208, 207, 401, 324, 185, 237, 217, 248, 188, 254, 224, 220, 178, 199, 389, 204, 229, 213, 293, 262, 239, 224, 315, 190, 352, 244, 194, 301, 469, 286, 216, 287, 198, 237, 210, 270, 212, 202, 200, 293, 218, 397, 314, 193, 287, 463, 278, 246, 302, 183, 192, 179, 257, 221, 197, 182, 258, 194, 253, 347, 242, 288, 221, 233, 222, 368, 229, 219, 313, 192, 198, 212, 273, 403, 292, 216, 218, 307, 240, 246, 244, 264, 225, 285, 183, 307, 197, 187, 189, 200, 177, 259, 213, 210, 230, 227, 235, 179, 348, 201, 193, 299, 319, 242, 183, 282, 346, 186, 369, 220, 246, 238, 214, 245, 187, 240, 219, 188, 185, 191, 277, 205, 186, 243, 268, 231, 206, 244, 192, 403, 290, 190, 474, 217, 221, 188, 192, 179, 180, 199, 220, 195, 313, 230, 233, 316, 191, 192, 299, 302, 237, 260, 259, 184, 235, 326, 325, 209, 208, 323, 235, 370, 353, 231, 346, 201, 220, 197, 249, 277, 245, 314, 185, 244, 189, 273, 294, 266, 311, 259, 291, 227, 475, 318, 267, 225, 219, 257, 294, 207, 201, 303, 181, 216, 186, 269, 377, 274, 201, 248, 358, 286, 187, 374, 208, 214, 342, 383, 311, 206, 212, 180, 290, 394, 336, 209, 273, 215, 363, 470, 194, 278, 353, 182, 203, 258, 210, 197, 244, 225, 181, 196, 238, 224, 189, 193, 184, 249, 274, 265, 216, 219, 207, 278, 230, 210, 429, 460, 232, 246, 258, 234, 238, 344, 256, 294, 203, 200, 238, 240, 278, 206, 385, 213, 307, 234, 193, 292, 276, 199, 314, 187, 261, 416, 294, 212, 231, 290, 270, 202, 192, 264, 494, 198, 181, 212, 201, 289, 251, 231, 290, 213, 204, 423, 204, 201, 349, 335, 245, 205, 196, 278, 213, 247, 203, 205, 315, 310, 179, 384, 204, 437, 229, 299, 289, 290, 214, 335, 320, 219, 289, 216, 211, 196, 345, 448, 227, 310, 276, 353, 371, 287, 196, 186, 198, 328, 310, 477, 211, 311, 229, 184, 238, 203, 193, 315, 186, 184, 242, 365, 209, 198, 192, 300, 200, 213, 354, 192, 210, 198, 248, 185, 476, 238, 237, 211, 191, 220, 208, 302, 198, 220, 255, 248, 431, 294, 331, 225, 199, 373, 275, 201, 212, 347, 326, 200, 187, 212, 186, 183, 188, 211, 211, 275, 273, 435, 305, 236, 189, 213, 195, 226, 342, 215, 247, 215, 262, 186, 246, 215, 327, 358, 314, 344, 220, 262, 233, 299, 275, 271, 376, 200, 231, 382, 305, 299, 318, 289, 288, 288, 328, 302, 243, 286, 194, 293, 220, 263, 231, 441, 233, 246, 305, 189, 217, 244, 267, 188, 211, 196, 284, 219, 211, 263, 211, 229, 280, 263, 241, 275, 248, 364, 227, 320, 228, 324, 437, 256, 223, 180, 181, 275, 298, 181, 190, 227, 396, 180, 265, 242, 402, 222, 251, 354, 237, 309, 215, 259, 291, 250, 326, 410, 299, 201, 413, 229, 394, 187, 222, 203, 349, 251, 187, 179, 327, 291, 366, 244, 214, 227, 210, 225, 263, 279, 202, 199, 192, 335, 208, 281, 239, 215, 302, 345, 275, 261, 235, 229, 191, 182, 193, 277, 215, 227, 183, 323, 317, 227, 202, 236, 230, 198, 193, 244, 246, 206, 206, 269, 231, 239, 203, 326, 242, 191, 294, 307, 228, 234, 256, 292, 251, 263, 208, 289, 275, 203, 307, 260, 216, 247, 251, 198, 269, 293, 214, 245, 206, 327, 212, 191, 228, 256, 291, 445, 240, 303, 234, 214, 254, 254, 446, 235, 244, 281, 253, 259, 221, 215, 250, 401, 257, 305, 249, 200, 308, 186, 186, 210, 312, 201, 256, 395, 439, 192, 393, 248, 272, 245, 259, 181, 293, 427, 181, 251, 305, 307, 236, 198, 190, 334, 304, 380, 328, 313, 220, 259, 293, 262, 200, 181, 221, 249, 370, 238, 284, 212, 215, 251, 306, 180, 305, 256, 304, 190, 332, 308, 384, 188, 355, 231, 365, 434, 306, 283, 390, 222, 313, 238, 268, 319, 273, 294, 230, 192, 342, 289, 275, 260, 268, 347, 360, 206, 196, 202, 196, 248, 217, 269, 296, 189, 242, 241, 363, 238, 315, 334, 269, 216, 292, 201, 197, 202, 227, 347, 183, 246, 216, 208, 197, 234, 206, 248, 356, 338, 229, 229, 261, 329, 207, 202, 205, 284, 184, 198, 268, 313, 198, 258, 229, 194, 212, 280, 194, 303, 227, 276, 271, 200, 196, 224, 248, 293, 291, 225, 268, 280, 200, 249, 221, 200, 239, 282, 200, 273, 212, 248, 231, 323, 201, 293, 217, 207, 242, 222, 240, 191, 214, 264, 334, 293, 180, 288, 234, 181, 194, 233, 299, 395, 229, 183, 363, 321, 285, 268, 425, 278, 217, 381, 294, 230, 199, 212, 247, 239, 263, 406, 276, 238, 218, 378, 209, 211, 287, 222, 345, 267, 208, 297, 214, 201, 222, 254, 248, 265, 193, 222, 187, 219, 256, 286, 211, 188, 191, 212, 237, 290, 235, 213, 200, 276, 191, 260, 179, 272, 227, 195, 354, 240, 223, 196, 262, 282, 320, 202, 267, 255, 188, 304, 189, 192, 202, 187, 233, 214, 303, 288, 186, 225, 269, 181, 415, 327, 214, 223, 266, 400, 302, 209, 262, 268, 194, 194, 235, 210, 195, 270, 419, 314, 205, 325, 186, 228, 251, 213, 239, 358, 260, 215, 264, 244, 255, 261, 191, 316, 227, 276, 271, 182, 325, 204, 193, 196, 194, 179, 265, 251, 205, 261, 344, 239, 298, 179, 202, 198, 203, 204, 212, 216, 324, 346, 278, 393, 203, 216, 212, 277, 343, 316, 363, 201, 239, 195, 285, 208, 364, 193, 340, 292, 425, 273, 247, 200, 221, 301, 258, 184, 235, 238, 300, 217, 183, 222, 260, 206, 287, 221, 183, 336, 354, 201, 226, 203, 213, 202, 347, 412, 212, 219, 208, 305, 200, 205, 281, 271, 223, 326, 245, 256, 220, 219, 203, 179, 201, 269, 221, 220, 235, 248, 220, 220, 221, 221, 208, 281, 286, 257, 202, 303, 308, 301, 299, 184, 364, 292, 220, 213, 184, 200, 281, 227, 277, 248, 210, 285, 226, 216, 240, 202, 184, 204, 316, 202, 229, 221, 386, 200, 206, 224, 201, 212, 320, 192, 318, 199, 370, 205, 206, 203, 334, 452, 243, 213, 291, 244, 238, 473, 367, 367, 432, 205, 226, 233, 321, 249, 256, 200, 249, 347, 182, 190, 307, 359, 312, 221, 213, 184, 270, 300, 284, 256, 278, 196, 232, 273, 190, 333, 234, 428, 239, 202, 209, 196, 343, 207, 255, 290, 265, 222, 227, 228, 225, 242, 207, 201, 185, 472, 350, 322, 306, 182, 242, 298, 215, 266, 215, 385, 279, 276, 199, 276, 307, 192, 209, 257, 255, 296, 266, 398, 193, 365, 211, 184, 232, 213, 187, 195, 316, 208, 407, 237, 214, 206, 230, 187, 290, 436, 251, 325, 354, 197, 193, 263, 359, 220, 185, 248, 324, 223, 194, 345, 218, 211, 284, 219, 286, 349, 240, 184, 216, 218, 268, 334, 449, 236, 281, 247, 280, 198, 200, 272, 185, 329, 225, 201, 190, 247, 220, 210, 403, 202, 215, 221, 211, 259, 305, 218, 272, 209, 189, 270, 213, 234, 191, 330, 314, 210, 292, 204, 226, 221, 259, 220, 292, 283, 206, 227, 326, 261, 326, 214, 399, 179, 275, 279, 215, 195, 282, 251, 333, 278, 257, 218, 277, 296, 337, 197, 232, 278, 299, 319, 323, 228, 279, 353, 389, 367, 254, 219, 396, 198, 209, 362, 185, 192, 273, 194, 287, 300, 180, 269, 201, 330, 261, 185, 328, 320, 283, 242, 260, 360, 228, 294, 218, 202, 238, 179, 185, 354, 300, 210, 240, 248, 259, 256, 190, 289, 206, 180, 216, 302, 283, 191, 274, 197, 206, 189, 220, 365, 280, 184, 237, 209, 197, 335, 193, 252, 320, 254, 339, 292, 455, 201, 218, 327, 317, 261, 195, 231, 247, 198, 188, 262, 233, 284, 210, 378, 262, 209, 186, 187, 233, 263, 274, 316, 292, 181, 213, 220, 256, 198, 204, 265, 203, 432, 217, 192, 320, 202, 299, 329, 202, 274, 191, 203, 334, 419, 207, 239, 246, 183, 202, 359, 348, 249, 276, 232, 243, 233, 192, 275, 243, 232, 227, 248, 236, 181, 357, 282, 328, 208, 227, 237, 218, 202, 225, 191, 223, 256, 198, 209, 219, 234, 246, 389, 196, 181, 223, 178, 216, 275, 249, 212, 220, 190, 451, 259, 302, 252, 189, 213, 221, 242, 228, 248, 217, 194, 187, 184, 211, 248, 191, 203, 315, 358, 187, 191, 215, 198, 186, 376, 318, 299, 248, 211, 212, 224, 204, 202, 236, 329, 324, 315, 233, 253, 277, 327, 307, 242, 389, 228, 219, 189, 225, 419, 278, 285, 247, 256, 226, 252, 188, 198, 275, 283, 331, 186, 203, 300, 373, 188, 289, 200, 185, 246, 218, 332, 200, 197, 204, 220, 183, 380, 268, 243, 200, 254, 201, 227, 283, 228, 227, 191, 285, 229, 339, 340, 227, 301, 278, 213, 233, 285, 218, 215, 280, 319, 268, 195, 180, 192, 185, 183, 489, 218, 187, 186, 258, 195, 180, 182, 290, 291, 179, 240, 239, 234, 202, 359, 187, 181, 201, 224, 286, 212, 292, 305, 199, 277, 230, 308, 203, 264, 273, 188, 310, 196, 330, 240, 317, 350, 199, 290, 197, 211, 209, 181, 218, 242, 415, 179, 205, 352, 181, 208, 182, 248, 182, 275, 217, 428, 212, 197, 196, 287, 264, 279, 194, 247, 253, 230, 209, 282, 186, 201, 313, 214, 336, 235, 248, 199, 283, 293, 208, 205, 285, 275, 211, 182, 189, 319, 253, 209, 304, 287, 233, 293, 228, 286, 250, 179, 310, 233, 192, 232, 220, 308, 204, 279, 189, 217, 298, 282, 207, 198, 194, 182, 490, 309, 285, 199, 241, 294, 302, 409, 309, 354, 194, 268, 240, 266, 294, 182, 287, 212, 185, 246, 320, 177, 204, 223, 361, 390, 241, 286, 325, 197, 188, 269, 250, 245, 319, 305, 202, 371, 281, 400, 185, 186, 385, 276, 219, 205, 185, 190, 456, 399, 293, 193, 364, 311, 322, 325, 233, 217, 262, 302, 360, 337, 253, 255, 294, 214, 387, 297, 182, 197, 190, 210, 262, 300, 203, 245, 358, 183, 247, 222, 393, 246, 213, 188, 196, 298, 281, 225, 249, 204, 198, 193, 246, 218, 245, 223, 295, 283, 387, 329, 194, 220, 184, 192, 223, 226, 484, 236, 211, 218, 236, 216, 313, 201, 218, 218, 193, 282, 188, 272, 225, 202, 261, 335, 192, 224, 289, 240, 219, 200, 332, 360, 420, 178, 326, 195, 366, 334, 234, 247, 192, 194, 239, 420, 201, 218, 209, 190, 231, 293, 287, 244, 253, 199, 240, 488, 215, 224, 280, 251, 223, 272, 188, 307, 191, 343, 322, 235, 203, 226, 226, 379, 191, 260, 212, 189, 232, 255, 296, 192, 282, 209, 261, 269, 226, 195, 188, 404, 340, 197, 346, 186, 257, 330, 261, 226, 279, 265, 216, 308, 283, 202, 230, 222, 204, 262, 284, 262, 219, 234, 271, 295, 210, 308, 203, 271, 210, 185, 215, 319, 204, 190, 201, 445, 265, 245, 288, 203, 307, 221, 391, 247, 329, 280, 209, 193, 428, 188, 184, 202, 203, 205, 320, 199, 424, 456, 193, 239, 312, 223, 280, 289, 227, 198, 187, 180, 409, 295, 175, 195, 256, 182, 260, 209, 316, 249, 195, 223, 365, 225, 344, 268, 418, 207, 204, 267, 247, 248, 333, 192, 332, 249, 225, 218, 264, 211, 196, 200, 482, 219, 185, 235, 194, 220, 255, 326, 207, 182, 278, 182, 376, 248, 235, 197, 209, 222, 270, 245, 411, 281, 237, 275, 269, 243, 279, 216, 200, 205, 334, 356, 310, 252, 299, 437, 255, 292, 287, 230, 191, 229, 234, 211, 316, 182, 223, 187, 219, 262, 222, 191, 196, 221, 224, 187, 229, 193, 184, 261, 219, 235, 228, 220, 189, 258, 189, 213, 226, 202, 236, 241, 212, 208, 190, 307, 203, 191, 195, 211, 236, 325, 287, 285, 184, 367, 309, 350, 210, 292, 253, 274, 251, 242, 315, 225, 247, 290, 306, 226, 182, 264, 196, 216, 220, 298, 245, 237, 306, 245, 243, 273, 207, 343, 209, 208, 374, 199, 186, 202, 289, 230, 246, 319, 278, 306, 362, 212, 398, 244, 328, 238, 186, 246, 251, 282, 198, 195, 193, 386, 179, 220, 457, 267, 381, 216, 186, 210, 229, 183, 263, 222, 189, 188, 235, 254, 293, 195, 289, 314, 272, 264, 279, 213, 187, 235, 224, 366, 194, 211, 208, 315, 187, 235, 325, 256, 448, 215, 277, 341, 221, 215, 217, 327, 204, 206, 295, 238, 268, 187, 266, 200, 300, 201, 232, 250, 192, 277, 285, 186, 188, 261, 297, 220, 186, 299, 249, 402, 356, 179, 194, 271, 192, 192, 182, 321, 189, 287, 228, 278, 201, 201, 457, 179, 397, 212, 182, 337, 347, 369, 365, 214, 214, 368, 455, 249, 199, 300, 319, 225, 276, 297, 378, 193, 254, 237, 277, 216, 206, 209, 184, 213, 298, 207, 198, 235, 239, 191, 286, 278, 396, 216, 197, 242, 305, 274, 270, 379, 240, 292, 226, 356, 302, 204, 210, 286, 182, 250, 199, 200, 238, 285, 281, 257, 349, 299, 197, 249, 231, 187, 271, 470, 390, 196, 204, 196, 301, 393, 265, 201, 265, 315, 290, 200, 216, 342, 201, 205, 293, 187, 247, 316, 390, 198, 194, 185, 371, 204, 285, 211, 263, 327, 290, 190, 221, 208, 187, 204, 206, 218, 335, 233, 209, 294, 231, 192, 262, 243, 188, 211, 242, 182, 292, 265, 243, 217, 197, 335, 342, 266, 199, 191, 237, 191, 193, 204, 270, 202, 220, 297, 211, 244, 364, 196, 256, 319, 181, 381, 185, 191, 218, 322, 316, 238, 184, 277, 185, 204, 208, 344, 216, 203, 258, 198, 231, 265, 210, 218, 235, 219, 186, 252, 312, 190, 277, 208, 317, 330, 360, 284, 216, 186, 280, 179, 226, 223, 339, 318, 229, 285, 230, 179, 190, 233, 248, 230, 232, 230, 413, 295, 266, 225, 184, 185, 252, 232, 242, 255, 362, 397, 307, 188, 275, 196, 256, 189, 195, 227, 227, 246, 306, 213, 321, 285, 340, 213, 294, 189, 208, 189, 217, 246, 243, 302, 484, 198, 223, 247, 400, 286, 289, 218, 270, 425, 192, 208, 208, 265, 193, 197, 463, 212, 249, 305, 188, 387, 197, 302, 214, 227, 323, 196, 230, 205, 265, 278, 200, 283, 179, 332, 222, 362, 179, 274, 255, 323, 214, 332, 245, 223, 317, 283, 205, 188, 209, 215, 335, 218, 224, 305, 208, 224, 251, 218, 262, 202, 209, 405, 217, 205, 285, 339, 193, 216, 205, 230, 187, 280, 413, 286, 197, 181, 330, 241, 189, 197, 191, 236, 434, 198, 308, 204, 319, 239, 193, 208, 218, 314, 227, 186, 223, 276, 310, 303, 264, 228, 342, 318, 270, 292, 200, 192, 226, 197, 350, 188, 301, 202, 246, 206, 328, 270, 226, 194, 223, 191, 187, 270, 205, 333, 285, 224, 215, 213, 275, 343, 248, 197, 189, 193, 204, 240, 266, 251, 358, 238, 247, 292, 275, 227, 229, 227, 284, 208, 421, 217, 217, 206, 199, 276, 220, 265, 337, 215, 287, 188, 199, 244, 230, 355, 241, 225, 276, 279, 189, 185, 201, 257, 319, 265, 213, 283, 184, 249, 186, 262, 251, 187, 266, 196, 232, 260, 228, 177, 196, 255, 279, 242, 186, 255, 184, 227, 256, 240, 361, 482, 266, 294, 439, 281, 201, 215, 194, 203, 297, 313, 295, 205, 225, 262, 300, 216, 197, 199, 265, 317, 209, 458, 224, 282, 188, 318, 181, 237, 283, 454, 305, 180, 332, 273, 258, 277, 473, 276, 314, 235, 182, 275, 217, 195, 191, 202, 186, 180, 203, 355, 207, 216, 219, 183, 332, 214, 235, 217, 296, 255, 325, 294, 238, 187, 223, 197, 250, 212, 241, 243, 234, 205, 186, 264, 203, 203, 195, 208, 283, 229, 283, 193, 179, 232, 489, 235, 245, 218, 206, 353, 342, 283, 209, 230, 204, 302, 314, 210, 182, 350, 186, 331, 366, 284, 299, 307, 286, 245, 181, 192, 187, 250, 201, 300, 191, 282, 188, 400, 333, 238, 284, 214, 351, 246, 205, 324, 304, 198, 178, 291, 358, 288, 226, 188, 286, 266, 251, 189, 237, 297, 267, 290, 185, 188, 197, 242, 196, 268, 301, 243, 178, 263, 263, 251, 271, 265, 273, 196, 183, 206, 311, 194, 329, 262, 412, 186, 469, 293, 192, 207, 248, 178, 295, 201, 183, 209, 185, 187, 185, 310, 198, 199, 206, 338, 306, 219, 301, 210, 402, 186, 471, 186, 197, 182, 234, 205, 220, 304, 232, 189, 278, 239, 326, 214, 231, 183, 222, 266, 225, 198, 230, 229, 225, 309, 222, 236, 256, 220, 211, 254, 211, 380, 182, 328, 220, 245, 367, 234, 326, 210, 265, 204, 239, 214, 254, 366, 363, 251, 315, 193, 182, 295, 401, 184, 322, 219, 394, 293, 269, 180, 246, 276, 210, 307, 191, 208, 229, 291, 196, 193, 297, 200, 202, 296, 287, 253, 303, 306, 355, 317, 183, 306, 247, 312, 217, 299, 313, 292, 193, 195, 224, 228, 261, 295, 243, 218, 355, 410, 194, 258, 247, 217, 294, 311, 251, 243, 201, 191, 199, 235, 196, 180, 181, 291, 205, 430, 262, 346, 209, 193, 291, 321, 206, 201, 270, 285, 184, 206, 210, 187, 195, 316, 379, 325, 240, 249, 458, 233, 190, 218, 187, 202, 281, 228, 334, 218, 319, 319, 230, 184, 268, 193, 177, 259, 193, 189, 457, 248, 236, 215, 187, 224, 208, 216, 180, 385, 276, 219, 200, 288, 208, 360, 196, 213, 327, 205, 271, 398, 255, 213, 213, 209, 266, 313, 211, 206, 276, 252, 231, 319, 182, 232, 280, 244, 239, 299, 192, 280, 274, 192, 223, 302, 268, 290, 212, 187, 217, 357, 205, 209, 223, 245, 256, 350, 282, 416, 211, 249, 256, 227, 263, 409, 201, 264, 191, 254, 193, 305, 194, 234, 233, 292, 315, 197, 206, 188, 236, 183, 199, 232, 258, 269, 212, 179, 444, 209, 185, 330, 187, 296, 196, 291, 204, 204, 346, 212, 185, 186, 377, 286, 365, 264, 246, 263, 237, 344, 330, 202, 311, 191, 195, 186, 201, 218, 314, 225, 188, 312, 193, 280, 223, 360, 239, 223, 185, 201, 226, 187, 221, 181, 280, 264, 303, 308, 378, 266, 220, 394, 263, 210, 302, 258, 227, 193, 407, 259, 179, 245, 225, 292, 372, 301, 175, 215, 258, 212, 178, 211, 228, 205, 337, 212, 215, 232, 294, 250, 187, 337, 283, 199, 212, 189, 180, 243, 331, 229, 177, 221, 188, 344, 215, 437, 446, 420, 232, 305, 237, 360, 204, 195, 410, 187, 261, 235, 200, 320, 206, 255, 248, 269, 182, 226, 197, 294, 288, 228, 244, 243, 216, 287, 208, 200, 204, 331, 246, 210, 391, 348, 224, 187, 187, 215, 247, 196, 191, 235, 304, 221, 317, 190, 189, 292, 222, 183, 371, 220, 321, 198, 179, 192, 217, 373, 188, 246, 415, 267, 276, 351, 239, 203, 268, 180, 234, 255, 241, 317, 215, 182, 187, 220, 194, 260, 198, 180, 196, 304, 324, 290, 249, 203, 233, 334, 226, 310, 179, 373, 197, 224, 234, 254, 205, 309, 236, 294, 222, 280, 297, 362, 183, 398, 225, 238, 423, 214, 211, 298, 198, 255, 295, 184, 269, 254, 185, 207, 204, 280, 263, 321, 225, 366, 208, 242, 354, 254, 220, 212, 187, 266, 263, 217, 299, 231, 249, 232, 325, 346, 190, 214, 350, 185, 199, 214, 202, 270, 207, 196, 192, 256, 201, 220, 198, 192, 434, 180, 193, 238, 297, 183, 187, 233, 204, 186, 232, 362, 215, 252, 184, 226, 205, 364, 195, 227, 194, 235, 190, 329, 264, 370, 222, 188, 211, 183, 201, 301, 305, 199, 204, 226, 282, 218, 233, 221, 207, 413, 281, 290, 322, 199, 240, 189, 385, 193, 210, 287, 191, 206, 453, 182, 265, 362, 233, 254, 213, 259, 376, 422, 263, 210, 253, 199, 183, 179, 242, 188, 240, 205, 289, 183, 181, 193, 185, 207, 198, 199, 257, 248, 259, 219, 226, 313, 301, 184, 203, 330, 191, 236, 239, 194, 392, 305, 286, 249, 223, 254, 226, 245, 208, 195, 219, 253, 194, 213, 208, 222, 310, 199, 298, 198, 300, 325, 236, 243, 299, 277, 216, 189, 197, 187, 190, 220, 215, 286, 397, 238, 329, 425, 331, 189, 228, 264, 283, 268, 342, 248, 199, 185, 203, 202, 237, 212, 208, 188, 208, 360, 493, 222, 206, 292, 199, 288, 241, 203, 194, 251, 263, 240, 205, 339, 202, 300, 284, 246, 228, 215, 188, 223, 304, 386, 233, 204, 200, 198, 338, 218, 241, 186, 254, 317, 179, 228, 378, 378, 224, 220, 200, 263, 289, 265, 192, 188, 380, 204, 263, 192, 226, 185, 193, 252, 239, 248, 308, 217, 356, 350, 249, 215, 288, 231, 200, 298, 246, 180, 318, 215, 198, 347, 182, 200, 262, 212, 302, 221, 215, 283, 187, 346, 218, 190, 298, 334, 305, 292, 204, 191, 184, 201, 185, 311, 196, 253, 236, 205, 299, 323, 216, 379, 267, 246, 185, 179, 317, 333, 352, 218, 227, 221, 290, 186, 363, 190, 287, 208, 188, 185, 218, 239, 200, 187, 200, 417, 221, 221, 280, 222, 208, 202, 235, 270, 308, 474, 229, 198, 394, 219, 202, 204, 194, 270, 235, 209, 216, 267, 410, 181, 432, 231, 204, 291, 191, 375, 335, 181, 278, 226, 228, 223, 334, 199, 263, 208, 211, 215, 225, 202, 287, 289, 189, 303, 282, 315, 359, 203, 261, 225, 188, 261, 295, 178, 199, 282, 192, 232, 244, 269, 350, 185, 226, 245, 319, 264, 372, 349, 351, 249, 186, 423, 178, 243, 268, 237, 334, 404, 219, 248, 316, 203, 270, 258, 213, 264, 322, 205, 442, 280, 180, 218, 201, 197, 252, 296, 238, 272, 221, 236, 232, 246, 207, 280, 330, 210, 272, 196, 179, 240, 207, 222, 326, 214, 374, 230, 220, 324, 238, 280, 195, 215, 231, 226, 216, 218, 231, 277, 214, 316, 200, 199, 209, 322, 266, 246, 205, 198, 226, 331, 218, 205, 227, 189, 273, 241, 282, 298, 238, 232, 186, 219, 380, 331, 297, 205, 293, 363, 238, 216, 272, 264, 255, 280, 206, 208, 299, 249, 189, 229, 198, 194, 286, 224, 205, 182, 245, 400, 275, 228, 208, 231, 234, 269, 207, 273, 213, 213, 349, 383, 314, 276, 385, 177, 234, 206, 237, 338, 327, 196, 272, 191, 364, 242, 243, 303, 197, 337, 200, 198, 196, 205, 266, 302, 203, 349, 315, 221, 206, 376, 300, 219, 268, 200, 216, 272, 207, 294, 224, 228, 230, 259, 195, 232, 457, 194, 284, 223, 216, 267, 180, 333, 321, 430, 296, 237, 259, 254, 241, 184, 436, 206, 263, 260, 267, 209, 231, 318, 223, 221, 192, 262, 223, 194, 203, 226, 254, 194, 198, 332, 220, 228, 313, 213, 448, 184, 194, 334, 212, 242, 215, 190, 190, 321, 197, 286, 204, 311, 316, 285, 194, 217, 311, 179, 204, 224, 272, 263, 189, 307, 363, 255, 201, 342, 185, 238, 214, 226, 294, 188, 224, 220, 240, 205, 243, 186, 190, 230, 279, 373, 221, 253, 200, 321, 221, 190, 221, 379, 190, 222, 269, 242, 267, 342, 205, 217, 218, 240, 256, 217, 257, 226, 388, 218, 252, 318, 278, 199, 218, 221, 359, 187, 295, 184, 395, 199, 217, 244, 332, 234, 250, 284, 399, 287, 187, 193, 341, 211, 184, 201, 183, 264, 231, 221, 247, 391, 183, 225, 212, 319, 342, 278, 241, 303, 190, 424, 480, 251, 232, 332, 344, 261, 207, 228, 256, 271, 195, 203, 191, 192, 207, 236, 186, 232, 340, 212, 254, 228, 193, 264, 180, 248, 294, 254, 243, 223, 190, 268, 255, 196, 245, 310, 182, 306, 248, 196, 192, 265, 213, 327, 214, 213, 344, 214, 269, 324, 208, 235, 193, 278, 203, 212, 183, 182, 243, 252, 192, 300, 388, 393, 269, 280, 304, 234, 322, 353, 285, 317, 182, 303, 361, 221, 268, 186, 287, 389, 245, 270, 255, 207, 286, 228, 199, 413, 237, 202, 214, 453, 240, 185, 343, 244, 200, 233, 189, 224, 222, 205, 207, 219, 273, 218, 192, 233, 411, 204, 298, 384, 212, 203, 211, 184, 359, 241, 194, 178, 184, 257, 190, 203, 298, 181, 400, 251, 274, 219, 215, 186, 418, 241, 278, 246, 185, 242, 221, 344, 207, 233, 202, 236, 187, 191, 209, 183, 239, 201, 202, 181, 248, 218, 193, 232, 286, 312, 239, 231, 228, 277, 245, 370, 300, 208, 290, 229, 204, 212, 254, 194, 220, 209, 194, 195, 387, 191, 254, 200, 221, 207, 234, 226, 201, 219, 300, 207, 250, 244, 349, 234, 255, 258, 180, 203, 196, 298, 247, 218, 240, 258, 224, 220, 230, 268, 189, 295, 220, 369, 228, 185, 210, 211, 219, 254, 184, 184, 304, 225, 317, 254, 237, 181, 238, 185, 348, 195, 313, 199, 231, 211, 258, 193, 261, 224, 210, 333, 249, 237, 192, 239, 239, 230, 362, 205, 215, 215, 245, 269, 335, 204, 190, 198, 209, 189, 267, 219, 440, 476, 236, 238, 187, 196, 315, 275, 191, 397, 339, 222, 287, 298, 233, 239, 183, 280, 213, 223, 234, 200, 213, 250, 203, 316, 201, 183, 322, 270, 214, 259, 267, 192, 303, 226, 286, 249, 227, 201, 191, 187, 189, 237, 210, 181, 356, 239, 381, 204, 321, 313, 260, 198, 263, 288, 255, 229, 297, 303, 294, 227, 219, 206, 316, 254, 293, 216, 397, 409, 191, 194, 227, 265, 212, 262, 208, 229, 201, 196, 216, 289, 244, 180, 265, 262, 259, 222, 316, 256, 180, 285, 233, 206, 285, 370, 206, 203, 213, 346, 190, 192, 301, 197, 230, 431, 299, 264, 466, 291, 374, 432, 223, 310, 203, 222, 303, 261, 261, 338, 218, 203, 497, 231, 229, 264, 217, 182, 216, 185, 225, 243, 232, 181, 190, 260, 195, 336, 197, 203, 202, 222, 247, 246, 234, 217, 412, 220, 285, 409, 179, 290, 350, 204, 212, 237, 250, 246, 196, 219, 311, 204, 207, 186, 259, 214, 221, 351, 282, 288, 327, 225, 198, 181, 182, 176, 343, 196, 223, 204, 384, 277, 286, 308, 357, 215, 239, 220, 369, 218, 195, 220, 278, 269, 247, 314, 185, 269]

1.9 Preparing data for models

In [49]:
project_data.columns
Out[49]:
Index(['Unnamed: 0', 'id', 'teacher_id', 'teacher_prefix', 'school_state',
       'Date', 'project_grade_category', 'project_title', 'project_essay_1',
       'project_essay_2', 'project_essay_3', 'project_essay_4',
       'project_resource_summary',
       'teacher_number_of_previously_posted_projects', 'project_is_approved',
       'clean_categories', 'clean_subcategories', 'essay', 'pos', 'neg', 'neu',
       'compound', 'title_word_count', 'essay_word_count'],
      dtype='object')

we are going to consider

   - school_state : categorical data
   - clean_categories : categorical data
   - clean_subcategories : categorical data
   - project_grade_category : categorical data
   - teacher_prefix : categorical data

   - project_title : text data
   - text : text data
   - project_resource_summary: text data (optinal)

   - quantity : numerical (optinal)
   - teacher_number_of_previously_posted_projects : numerical
   - price : numerical

Assignment 5: Logistic Regression

  1. [Task-1] Logistic Regression(either SGDClassifier with log loss, or LogisticRegression) on these feature sets
    • Set 1: categorical, numerical features + project_title(BOW) + preprocessed_eassay (`BOW with bi-grams` with `min_df=10` and `max_features=5000`)
    • Set 2: categorical, numerical features + project_title(TFIDF)+ preprocessed_eassay (`TFIDF with bi-grams` with `min_df=10` and `max_features=5000`)
    • Set 3: categorical, numerical features + project_title(AVG W2V)+ preprocessed_eassay (AVG W2V)
    • Set 4: categorical, numerical features + project_title(TFIDF W2V)+ preprocessed_essay (TFIDF W2V)

  2. Hyper paramter tuning (find best hyper parameters corresponding the algorithm that you choose)
    • Find the best hyper parameter which will give the maximum AUC value
    • Find the best hyper paramter using k-fold cross validation or simple cross validation data
    • Use gridsearch cv or randomsearch cv or you can also write your own for loops to do this task of hyperparameter tuning

  3. Representation of results
    • You need to plot the performance of model both on train data and cross validation data for each hyper parameter, like shown in the figure.
    • Once after you found the best hyper parameter, you need to train your model with it, and find the AUC on test data and plot the ROC curve on both train and test.
    • Along with plotting ROC curve, you need to print the confusion matrix with predicted and original labels of test data points. Please visualize your confusion matrices using seaborn heatmaps.

  4. [Task-2] Apply Logistic Regression on the below feature set Set 5 by finding the best hyper parameter as suggested in step 2 and step 3.
  5. Consider these set of features Set 5 :
    • school_state : categorical data
    • clean_categories : categorical data
    • clean_subcategories : categorical data
    • project_grade_category :categorical data
    • teacher_prefix : categorical data
    • quantity : numerical data
    • teacher_number_of_previously_posted_projects : numerical data
    • price : numerical data
    • sentiment score's of each of the essay : numerical data
    • number of words in the title : numerical data
    • number of words in the combine essays : numerical data
    And apply the Logistic regression on these features by finding the best hyper paramter as suggested in step 2 and step 3

  6. Conclusion

Note: Data Leakage

  1. There will be an issue of data-leakage if you vectorize the entire data and then split it into train/cv/test.
  2. To avoid the issue of data-leakage, make sure to split your data first and then vectorize it.
  3. While vectorizing your data, apply the method fit_transform() on you train data, and apply the method transform() on cv/test data.
  4. For more details please go through this link.

2. Logistic Regression

2.1 Splitting data into Train and cross validation(or test): Stratified Sampling

In [50]:
y = project_data['project_is_approved']
print(y.shape)
(50000,)
In [51]:
project_data.drop(['project_is_approved'],axis=1,inplace=True)
In [52]:
X=project_data
print(X.shape)
(50000, 23)
In [160]:
#train test split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, stratify=y)
X_train, X_cv, y_train, y_cv = train_test_split(X_train, y_train, test_size=0.33, stratify=y_train)

2.2 Make Data Model Ready: encoding numerical, categorical features

In [161]:
print(X_train.shape, y_train.shape)
print(X_cv.shape, y_cv.shape)
print(X_test.shape, y_test.shape)
print("="*100)
(22445, 23) (22445,)
(11055, 23) (11055,)
(16500, 23) (16500,)
====================================================================================================

Encoding of Text Data

In [162]:
from sklearn.feature_extraction.text import CountVectorizer

BOW of Essay

In [163]:
vectorizer = CountVectorizer(min_df=10,ngram_range=(2,2), max_features=5000)
In [164]:
vectorizer.fit(X_train['essay'].values) # fit has to happen only on train data
Out[164]:
CountVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
                lowercase=True, max_df=1.0, max_features=5000, min_df=10,
                ngram_range=(2, 2), preprocessor=None, stop_words=None,
                strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None, vocabulary=None)
In [165]:
# we use the fitted CountVectorizer to convert the text to vector
X_train_essay_bow = vectorizer.transform(X_train['essay'].values)
In [166]:
X_cv_essay_bow = vectorizer.transform(X_cv['essay'].values)
In [167]:
X_test_essay_bow = vectorizer.transform(X_test['essay'].values)
In [168]:
print("After vectorizations")
print(X_train_essay_bow.shape, y_train.shape)
print(X_cv_essay_bow.shape, y_cv.shape)
print(X_test_essay_bow.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 5000) (22445,)
(11055, 5000) (11055,)
(16500, 5000) (16500,)
====================================================================================================

BOW of Title

In [169]:
vectorizer = CountVectorizer(min_df=10,ngram_range=(1,4), max_features=5000)
In [170]:
vectorizer.fit(X_train['project_title'].values) # fit has to happen only on train data
Out[170]:
CountVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
                lowercase=True, max_df=1.0, max_features=5000, min_df=10,
                ngram_range=(1, 4), preprocessor=None, stop_words=None,
                strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None, vocabulary=None)
In [171]:
# we use the fitted CountVectorizer to convert the text to vector
X_train_title_bow = vectorizer.transform(X_train['project_title'].values)
In [172]:
X_cv_title_bow = vectorizer.transform(X_cv['project_title'].values)
In [173]:
X_test_title_bow = vectorizer.transform(X_test['project_title'].values)
In [174]:
print("After vectorizations")
print(X_train_title_bow.shape, y_train.shape)
print(X_cv_title_bow.shape, y_cv.shape)
print(X_test_title_bow.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1971) (22445,)
(11055, 1971) (11055,)
(16500, 1971) (16500,)
====================================================================================================

TFIDF of Essay

In [175]:
vectorizer = TfidfVectorizer(min_df=10,ngram_range=(2,2), max_features=5000)
In [176]:
vectorizer.fit(X_train['essay'].values) # fit has to happen only on train data
Out[176]:
TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.float64'>, encoding='utf-8',
                input='content', lowercase=True, max_df=1.0, max_features=5000,
                min_df=10, ngram_range=(2, 2), norm='l2', preprocessor=None,
                smooth_idf=True, stop_words=None, strip_accents=None,
                sublinear_tf=False, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None, use_idf=True, vocabulary=None)
In [177]:
# we use the fitted CountVectorizer to convert the text to vector
X_train_essay_tfidf = vectorizer.transform(X_train['essay'].values)
In [178]:
X_cv_essay_tfidf = vectorizer.transform(X_cv['essay'].values)
In [179]:
X_test_essay_tfidf = vectorizer.transform(X_test['essay'].values)
In [180]:
print("After vectorizations")
print(X_train_essay_tfidf.shape, y_train.shape)
print(X_cv_essay_tfidf.shape, y_cv.shape)
print(X_test_essay_tfidf.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 5000) (22445,)
(11055, 5000) (11055,)
(16500, 5000) (16500,)
====================================================================================================

TFIDF of Title

In [181]:
vectorizer = TfidfVectorizer(min_df=10,ngram_range=(1,4), max_features=5000)
In [182]:
vectorizer.fit(X_train['project_title'].values) # fit has to happen only on train data
Out[182]:
TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.float64'>, encoding='utf-8',
                input='content', lowercase=True, max_df=1.0, max_features=5000,
                min_df=10, ngram_range=(1, 4), norm='l2', preprocessor=None,
                smooth_idf=True, stop_words=None, strip_accents=None,
                sublinear_tf=False, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None, use_idf=True, vocabulary=None)
In [183]:
# we use the fitted CountVectorizer to convert the text to vector
X_train_title_tfidf = vectorizer.transform(X_train['project_title'].values)
In [184]:
X_cv_title_tfidf = vectorizer.transform(X_cv['project_title'].values)
In [185]:
X_test_title_tfidf = vectorizer.transform(X_test['project_title'].values)
In [186]:
print("After vectorizations")
print(X_train_title_tfidf.shape, y_train.shape)
print(X_cv_title_tfidf.shape, y_cv.shape)
print(X_test_title_tfidf.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1971) (22445,)
(11055, 1971) (11055,)
(16500, 1971) (16500,)
====================================================================================================

Avg W2V of Essay

In [187]:
# stronging variables into pickle files python: http://www.jessicayung.com/how-to-use-pickle-to-save-and-load-variables-in-python/
# make sure you have the glove_vectors file
with open('glove_vectors', 'rb') as f:
    model = pickle.load(f,encoding = "ISO-8859-1")
    glove_words =  set(model.keys())
In [188]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_essay_train = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_train['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_essay_train.append(vector)

print(len(avg_w2v_essay_train))
print(len(avg_w2v_essay_train[0]))
print(type(avg_w2v_essay_train))
100%|██████████████████████████████████████████████████████████████████████████| 22445/22445 [00:21<00:00, 1023.61it/s]
22445
300
<class 'list'>
In [189]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_essay_cv = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_cv['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_essay_cv.append(vector)

print(len(avg_w2v_essay_cv))
print(len(avg_w2v_essay_cv[0]))
print(type(avg_w2v_essay_cv))
100%|██████████████████████████████████████████████████████████████████████████| 11055/11055 [00:11<00:00, 1003.49it/s]
11055
300
<class 'list'>
In [190]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_essay_test = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_test['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_essay_test.append(vector)

print(len(avg_w2v_essay_test))
print(len(avg_w2v_essay_test[0]))
print(type(avg_w2v_essay_test))
100%|██████████████████████████████████████████████████████████████████████████| 16500/16500 [00:15<00:00, 1055.77it/s]
16500
300
<class 'list'>

Avg W2V of Title

In [191]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_title_train = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_train['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_title_train.append(vector)

print(len(avg_w2v_title_train))
print(len(avg_w2v_title_train[0]))
print(type(avg_w2v_title_train))
100%|█████████████████████████████████████████████████████████████████████████| 22445/22445 [00:00<00:00, 31553.34it/s]
22445
300
<class 'list'>
In [192]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_title_cv = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_cv['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_title_cv.append(vector)

print(len(avg_w2v_title_cv))
print(len(avg_w2v_title_cv[0]))
print(type(avg_w2v_title_cv))
100%|█████████████████████████████████████████████████████████████████████████| 11055/11055 [00:00<00:00, 28018.09it/s]
11055
300
<class 'list'>
In [193]:
# average Word2Vec
# compute average word2vec for each essay.
avg_w2v_title_test = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_test['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    cnt_words =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if word in glove_words:
            vector += model[word]
            cnt_words += 1
    if cnt_words != 0:
        vector /= cnt_words
    avg_w2v_title_test.append(vector)

print(len(avg_w2v_title_test))
print(len(avg_w2v_title_test[0]))
print(type(avg_w2v_title_test))
100%|█████████████████████████████████████████████████████████████████████████| 16500/16500 [00:00<00:00, 27469.23it/s]
16500
300
<class 'list'>

TFIDF-W2V of Essay

In [194]:
tfidf_model = TfidfVectorizer(min_df=10,ngram_range=(1,4), max_features=5000)
tfidf_model.fit(X_train['essay'].values)
# we are converting a dictionary with word as a key, and the idf as a value
dictionary = dict(zip(tfidf_model.get_feature_names(), list(tfidf_model.idf_)))
tfidf_words = set(tfidf_model.get_feature_names())
In [195]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_train_essay = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_train['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_train_essay.append(vector)

print(len(tfidf_w2v_train_essay))
print(len(tfidf_w2v_train_essay[0]))
100%|███████████████████████████████████████████████████████████████████████████| 22445/22445 [03:41<00:00, 101.20it/s]
22445
300
In [196]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_cv_essay = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_cv['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_cv_essay.append(vector)

print(len(tfidf_w2v_cv_essay))
print(len(tfidf_w2v_cv_essay[0]))
100%|████████████████████████████████████████████████████████████████████████████| 11055/11055 [02:06<00:00, 87.40it/s]
11055
300
In [197]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_test_essay = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_test['essay'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_test_essay.append(vector)

print(len(tfidf_w2v_test_essay))
print(len(tfidf_w2v_test_essay[0]))
100%|████████████████████████████████████████████████████████████████████████████| 16500/16500 [03:10<00:00, 79.98it/s]
16500
300

TFIDF-W2V of Title

In [198]:
tfidf_model = TfidfVectorizer(min_df=10,ngram_range=(1,4), max_features=5000)
tfidf_model.fit(X_train['project_title'].values)
# we are converting a dictionary with word as a key, and the idf as a value
dictionary = dict(zip(tfidf_model.get_feature_names(), list(tfidf_model.idf_)))
tfidf_words = set(tfidf_model.get_feature_names())
In [199]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_train_title = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_train['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_train_title.append(vector)

print(len(tfidf_w2v_train_title))
print(len(tfidf_w2v_train_title[0]))
100%|█████████████████████████████████████████████████████████████████████████| 22445/22445 [00:01<00:00, 14526.52it/s]
22445
300
In [200]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_cv_title = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_cv['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_cv_title.append(vector)

print(len(tfidf_w2v_cv_title))
print(len(tfidf_w2v_cv_title[0]))
100%|█████████████████████████████████████████████████████████████████████████| 11055/11055 [00:00<00:00, 14643.41it/s]
11055
300
In [201]:
# average Word2Vec
# compute average word2vec for each review.
tfidf_w2v_test_title = []; # the avg-w2v for each sentence/review is stored in this list
for sentence in tqdm(X_test['project_title'].values): # for each review/sentence
    vector = np.zeros(300) # as word vectors are of zero length
    tf_idf_weight =0; # num of words with a valid vector in the sentence/review
    for word in sentence.split(): # for each word in a review/sentence
        if (word in glove_words) and (word in tfidf_words):
            vec = model[word] # getting the vector for each word
            # here we are multiplying idf value(dictionary[word]) and the tf value((sentence.count(word)/len(sentence.split())))
            tf_idf = dictionary[word]*(sentence.count(word)/len(sentence.split())) # getting the tfidf value for each word
            vector += (vec * tf_idf) # calculating tfidf weighted w2v
            tf_idf_weight += tf_idf
    if tf_idf_weight != 0:
        vector /= tf_idf_weight
    tfidf_w2v_test_title.append(vector)

print(len(tfidf_w2v_test_title))
print(len(tfidf_w2v_test_title[0]))
100%|█████████████████████████████████████████████████████████████████████████| 16500/16500 [00:01<00:00, 14600.80it/s]
16500
300

2.3 Make Data Model Ready: encoding eassay, and project_title

In [202]:
price_data = resource_data.groupby('id').agg({'price':'sum', 'quantity':'sum'}).reset_index()
In [203]:
price_data.head(5)
Out[203]:
id price quantity
0 p000001 459.56 7
1 p000002 515.89 21
2 p000003 298.97 4
3 p000004 1113.69 98
4 p000005 485.99 8
In [204]:
X_train=pd.merge(X_train,price_data,on='id',how='left')
X_test=pd.merge(X_test,price_data,on='id',how='left')
X_cv=pd.merge(X_cv,price_data,on='id',how='left')
In [205]:
X_train=X_train.fillna(0)
X_cv=X_cv.fillna(0)
X_test=X_test.fillna(0)

Normalizing the numerical features: Price

In [206]:
from sklearn.preprocessing import Normalizer
normalizer = Normalizer()
# normalizer.fit(X_train['price'].values)
# this will rise an error Expected 2D array, got 1D array instead: 
# array=[105.22 215.96  96.01 ... 368.98  80.53 709.67].
# Reshape your data either using 
# array.reshape(-1, 1) if your data has a single feature 
# array.reshape(1, -1)  if it contains a single sample.
normalizer.fit(X_train['price'].values.reshape(-1,1))
X_train_price_norm = normalizer.transform(X_train['price'].values.reshape(-1,1))
X_cv_price_norm = normalizer.transform(X_cv['price'].values.reshape(-1,1))
X_test_price_norm = normalizer.transform(X_test['price'].values.reshape(-1,1))
print("After vectorizations")
print(X_train_price_norm.shape, y_train.shape)
print(X_cv_price_norm.shape, y_cv.shape)
print(X_test_price_norm.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Number of previously posted projects

In [207]:
normalizer = Normalizer()
normalizer.fit(X_train['teacher_number_of_previously_posted_projects'].values.reshape(-1,1))
X_train_project_norm = normalizer.transform(X_train['teacher_number_of_previously_posted_projects'].values.reshape(-1,1))
X_cv_project_norm = normalizer.transform(X_cv['teacher_number_of_previously_posted_projects'].values.reshape(-1,1))
X_test_project_norm = normalizer.transform(X_test['teacher_number_of_previously_posted_projects'].values.reshape(-1,1))
print("After vectorizations")
print(X_train_project_norm.shape, y_train.shape)
print(X_cv_project_norm.shape, y_cv.shape)
print(X_test_project_norm.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Title word Count

In [208]:
normalizer = Normalizer()
normalizer.fit(X_train['title_word_count'].values.reshape(-1,1))
X_train_title_norm = normalizer.transform(X_train['title_word_count'].values.reshape(-1,1))
X_cv_title_norm = normalizer.transform(X_cv['title_word_count'].values.reshape(-1,1))
X_test_title_norm = normalizer.transform(X_test['title_word_count'].values.reshape(-1,1))
print("After vectorizations")
print(X_train_title_norm.shape, y_train.shape)
print(X_cv_title_norm.shape, y_cv.shape)
print(X_test_title_norm.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Essay word Count

In [209]:
normalizer = Normalizer()
normalizer.fit(X_train['essay_word_count'].values.reshape(-1,1))
X_train_essay_norm = normalizer.transform(X_train['essay_word_count'].values.reshape(-1,1))
X_cv_essay_norm = normalizer.transform(X_cv['essay_word_count'].values.reshape(-1,1))
X_test_essay_norm = normalizer.transform(X_test['essay_word_count'].values.reshape(-1,1))
print("After vectorizations")
print(X_train_essay_norm.shape, y_train.shape)
print(X_cv_essay_norm.shape, y_cv.shape)
print(X_test_essay_norm.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Essay Sentiments-Positive

In [210]:
normalizer = Normalizer()
normalizer.fit(X_train['pos'].values.reshape(-1,1))
essay_sent_pos_train = normalizer.transform(X_train['pos'].values.reshape(-1,1))
essay_sent_pos_cv = normalizer.transform(X_cv['pos'].values.reshape(-1,1))
essay_sent_pos_test = normalizer.transform(X_test['pos'].values.reshape(-1,1))
print("After vectorizations")
print(essay_sent_pos_train.shape, y_train.shape)
print(essay_sent_pos_cv.shape, y_cv.shape)
print(essay_sent_pos_test.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Essay Sentiments-Negative

In [211]:
normalizer = Normalizer()
normalizer.fit(X_train['neg'].values.reshape(-1,1))
essay_sent_neg_train = normalizer.transform(X_train['neg'].values.reshape(-1,1))
essay_sent_neg_cv = normalizer.transform(X_cv['neg'].values.reshape(-1,1))
essay_sent_neg_test = normalizer.transform(X_test['neg'].values.reshape(-1,1))
print("After vectorizations")
print(essay_sent_neg_train.shape, y_train.shape)
print(essay_sent_neg_cv.shape, y_cv.shape)
print(essay_sent_neg_test.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Essay Sentiments-Neutral

In [212]:
normalizer = Normalizer()
normalizer.fit(X_train['neu'].values.reshape(-1,1))
essay_sent_neu_train = normalizer.transform(X_train['neu'].values.reshape(-1,1))
essay_sent_neu_cv = normalizer.transform(X_cv['neu'].values.reshape(-1,1))
essay_sent_neu_test = normalizer.transform(X_test['neu'].values.reshape(-1,1))
print("After vectorizations")
print(essay_sent_neu_train.shape, y_train.shape)
print(essay_sent_neu_cv.shape, y_cv.shape)
print(essay_sent_neu_test.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Normalizing the numerical features: Essay Sentiments-Compound

In [213]:
normalizer = Normalizer()
normalizer.fit(X_train['compound'].values.reshape(-1,1))
essay_sent_comp_train = normalizer.transform(X_train['compound'].values.reshape(-1,1))
essay_sent_comp_cv = normalizer.transform(X_cv['compound'].values.reshape(-1,1))
essay_sent_comp_test = normalizer.transform(X_test['compound'].values.reshape(-1,1))
print("After vectorizations")
print(essay_sent_comp_train.shape, y_train.shape)
print(essay_sent_comp_cv.shape, y_cv.shape)
print(essay_sent_comp_test.shape, y_test.shape)
print("="*100)
After vectorizations
(22445, 1) (22445,)
(11055, 1) (11055,)
(16500, 1) (16500,)
====================================================================================================

Vectorizing Categorical features

  • school_state : categorical data
  • clean_categories : categorical data
  • clean_subcategories : categorical data
  • project_grade_category : categorical data
  • teacher_prefix : categorical data

Vectorizing Categorical features: project grade category

In [214]:
from sklearn.feature_extraction.text import CountVectorizer
In [215]:
vectorizer = CountVectorizer(vocabulary=list(sorted_grade_dict.keys()), lowercase=False, binary=True)
vectorizer.fit(X_train['project_grade_category'].values) # fit has to happen only on train data

# we use the fitted CountVectorizer to convert the text to vector
X_train_grade_ohe = vectorizer.transform(X_train['project_grade_category'].values)
X_cv_grade_ohe = vectorizer.transform(X_cv['project_grade_category'].values)
X_test_grade_ohe = vectorizer.transform(X_test['project_grade_category'].values)

print("After vectorizations")
print(X_train_grade_ohe.shape, y_train.shape)
print(X_cv_grade_ohe.shape, y_cv.shape)
print(X_test_grade_ohe.shape, y_test.shape)
print(vectorizer.get_feature_names())
print("="*100)
After vectorizations
(22445, 4) (22445,)
(11055, 4) (11055,)
(16500, 4) (16500,)
['grades_9_12', 'grades_6_8', 'grades_3_5', 'grades_prek_2']
====================================================================================================

Vectorizing Categorical features: teacher prefix

In [216]:
vectorizer = CountVectorizer(vocabulary=list(sorted_teacher_dict.keys()), lowercase=False, binary=True)
vectorizer.fit(X_train['teacher_prefix'].values) # fit has to happen only on train data

# we use the fitted CountVectorizer to convert the text to vector
X_train_teacher_ohe = vectorizer.transform(X_train['teacher_prefix'].values)
X_cv_teacher_ohe = vectorizer.transform(X_cv['teacher_prefix'].values)
X_test_teacher_ohe = vectorizer.transform(X_test['teacher_prefix'].values)

print("After vectorizations")
print(X_train_teacher_ohe.shape, y_train.shape)
print(X_cv_teacher_ohe.shape, y_cv.shape)
print(X_test_teacher_ohe.shape, y_test.shape)
print(vectorizer.get_feature_names())
print("="*100)
After vectorizations
(22445, 5) (22445,)
(11055, 5) (11055,)
(16500, 5) (16500,)
['dr', 'teacher', 'mr', 'ms', 'mrs']
====================================================================================================

Vectorizing Categorical features: school state

In [217]:
vectorizer = CountVectorizer(vocabulary=list(sorted_state_dict.keys()), lowercase=False, binary=True)
vectorizer.fit(X_train['school_state'].values) # fit has to happen only on train data

# we use the fitted CountVectorizer to convert the text to vector
X_train_state_ohe = vectorizer.transform(X_train['school_state'].values)
X_cv_state_ohe = vectorizer.transform(X_cv['school_state'].values)
X_test_state_ohe = vectorizer.transform(X_test['school_state'].values)

print("After vectorizations")
print(X_train_state_ohe.shape, y_train.shape)
print(X_cv_state_ohe.shape, y_cv.shape)
print(X_test_state_ohe.shape, y_test.shape)
print(vectorizer.get_feature_names())
print("="*100)
After vectorizations
(22445, 51) (22445,)
(11055, 51) (11055,)
(16500, 51) (16500,)
['VT', 'WY', 'ND', 'MT', 'SD', 'NE', 'RI', 'NH', 'DE', 'AK', 'HI', 'ME', 'NM', 'WV', 'DC', 'KS', 'IA', 'ID', 'AR', 'CO', 'MN', 'OR', 'KY', 'NV', 'MS', 'MD', 'CT', 'TN', 'WI', 'UT', 'AL', 'AZ', 'VA', 'OK', 'NJ', 'WA', 'LA', 'MA', 'OH', 'MO', 'IN', 'PA', 'MI', 'GA', 'SC', 'IL', 'NC', 'FL', 'TX', 'NY', 'CA']
====================================================================================================

Vectorizing Categorical features: clean categories

In [218]:
vectorizer = CountVectorizer(vocabulary=list(sorted_cat_dict.keys()), lowercase=False, binary=True)
vectorizer.fit(X_train['clean_categories'].values) # fit has to happen only on train data

# we use the fitted CountVectorizer to convert the text to vector
X_train_cat_ohe = vectorizer.transform(X_train['clean_categories'].values)
X_cv_cat_ohe = vectorizer.transform(X_cv['clean_categories'].values)
X_test_cat_ohe = vectorizer.transform(X_test['clean_categories'].values)

print("After vectorizations")
print(X_train_cat_ohe.shape, y_train.shape)
print(X_cv_cat_ohe.shape, y_cv.shape)
print(X_test_cat_ohe.shape, y_test.shape)
print(vectorizer.get_feature_names())
print("="*100)
After vectorizations
(22445, 9) (22445,)
(11055, 9) (11055,)
(16500, 9) (16500,)
['Warmth', 'Care_Hunger', 'History_Civics', 'Music_Arts', 'AppliedLearning', 'SpecialNeeds', 'Health_Sports', 'Math_Science', 'Literacy_Language']
====================================================================================================

Vectorizing Categorical features: clean subcategories

In [219]:
vectorizer = CountVectorizer(vocabulary=list(sorted_sub_cat_dict.keys()), lowercase=False, binary=True)
vectorizer.fit(X_train['school_state'].values) # fit has to happen only on train data

# we use the fitted CountVectorizer to convert the text to vector
X_train_sub_ohe = vectorizer.transform(X_train['clean_subcategories'].values)
X_cv_sub_ohe = vectorizer.transform(X_cv['clean_subcategories'].values)
X_test_sub_ohe = vectorizer.transform(X_test['clean_subcategories'].values)

print("After vectorizations")
print(X_train_sub_ohe.shape, y_train.shape)
print(X_cv_sub_ohe.shape, y_cv.shape)
print(X_test_sub_ohe.shape, y_test.shape)
print(vectorizer.get_feature_names())
print("="*100)
After vectorizations
(22445, 30) (22445,)
(11055, 30) (11055,)
(16500, 30) (16500,)
['Economics', 'CommunityService', 'FinancialLiteracy', 'ParentInvolvement', 'Extracurricular', 'Civics_Government', 'ForeignLanguages', 'NutritionEducation', 'Warmth', 'Care_Hunger', 'SocialSciences', 'PerformingArts', 'CharacterEducation', 'TeamSports', 'Other', 'College_CareerPrep', 'History_Geography', 'Music', 'EarlyDevelopment', 'Health_LifeScience', 'ESL', 'Gym_Fitness', 'EnvironmentalScience', 'VisualArts', 'Health_Wellness', 'AppliedSciences', 'SpecialNeeds', 'Literature_Writing', 'Mathematics', 'Literacy']
====================================================================================================

2.4 Appling Logistic Regression on different kind of featurization as mentioned in the instructions


Apply Logistic Regression on different kind of featurization as mentioned in the instructions
For Every model that you work on make sure you do the step 2 and step 3 of instrucations

Applying Logistic Regression on BOW, SET 1

Creating Data Matrix

In [220]:
# Please write all the code with proper documentation

# merge two sparse matrices: https://stackoverflow.com/a/19710648/4084039
from scipy.sparse import hstack
X_tr = hstack((X_train_essay_bow,X_train_title_bow, X_train_state_ohe, X_train_teacher_ohe, X_train_grade_ohe,X_train_cat_ohe,X_train_sub_ohe, X_train_price_norm,X_train_project_norm)).tocsr()
X_cr = hstack((X_cv_essay_bow,X_cv_title_bow, X_cv_state_ohe, X_cv_teacher_ohe, X_cv_grade_ohe,X_cv_cat_ohe,X_cv_sub_ohe, X_cv_price_norm,X_cv_project_norm)).tocsr()
X_te = hstack((X_test_essay_bow,X_test_title_bow, X_test_state_ohe, X_test_teacher_ohe, X_test_grade_ohe,X_test_cat_ohe,X_test_sub_ohe, X_test_price_norm,X_test_project_norm)).tocsr()

print("Final Data matrix")
print(X_tr.shape, y_train.shape)
print(X_cr.shape, y_cv.shape)
print(X_te.shape, y_test.shape)
print("="*100)
Final Data matrix
(22445, 7072) (22445,)
(11055, 7072) (11055,)
(16500, 7072) (16500,)
====================================================================================================

Hyperparameter Tuning: Simple for loop (if you are having memory limitations use this)

In [221]:
def batch_predict(clf, data):
    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs

    y_data_pred = []
    tr_loop = data.shape[0] - data.shape[0]%1000
    # consider you X_tr shape is 49041, then your cr_loop will be 49041 - 49041%1000 = 49000
    # in this for loop we will iterate unti the last 1000 multiplier
    for i in range(0, tr_loop, 1000):
        y_data_pred.extend(clf.predict_proba(data[i:i+1000])[:,1])
    # we will be predicting for the last data points
    y_data_pred.extend(clf.predict_proba(data[tr_loop:])[:,1])
    
    return y_data_pred
In [222]:
import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
"""
y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of
decisions (as returned by “decision_function” on some classifiers). 
For binary y_true, y_score is supposed to be the score of the class with greater label.

"""

train_auc = []
cv_auc = []
log_alphas=[]

parameters = {'C':[0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1,2.5,5]}

for i in tqdm(parameters['C']):
    neigh = LogisticRegression(C=i)
    neigh.fit(X_tr, y_train)

    y_train_pred = batch_predict(neigh, X_tr)    
    y_cv_pred = batch_predict(neigh, X_cr)

    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs        
    train_auc.append(roc_auc_score(y_train,y_train_pred))
    cv_auc.append(roc_auc_score(y_cv, y_cv_pred))
100%|██████████████████████████████████████████████████████████████████████████████████| 11/11 [00:52<00:00,  8.61s/it]
In [223]:
import math 
for a in tqdm(parameters['C']):
    b = math.log10(a)
    log_alphas.append(b)
print(log_alphas)
100%|██████████████████████████████████████████████████████████████████████████████████████████| 11/11 [00:00<?, ?it/s]
[-4.0, -3.3010299956639813, -3.0, -2.3010299956639813, -2.0, -1.3010299956639813, -1.0, -0.3010299956639812, 0.0, 0.3979400086720376, 0.6989700043360189]
In [224]:
plt.figure(figsize=(20,15))
plt.plot(log_alphas, train_auc, label='Train AUC')
plt.plot(log_alphas, cv_auc, label='CV AUC')

plt.scatter(log_alphas, train_auc, label='Train AUC points')
plt.scatter(log_alphas, cv_auc, label='CV AUC points')

plt.legend()
plt.xlabel("C: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()
In [232]:
best_k=0.005

Train The Model

In [235]:
from sklearn.metrics import roc_curve, auc

neigh = LogisticRegression(C=best_k)
neigh.fit(X_tr, y_train)
# roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# not the predicted outputs

y_train_pred = batch_predict(neigh, X_tr)    
y_test_pred = batch_predict(neigh, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)

x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
In [236]:
# from sklearn.metrics import roc_curve, auc

# neigh = LogisticRegression(C=best_k)
# neigh.fit(X_tr, y_train)
# # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# # not the predicted outputs

# y_train_pred = neigh.predict_proba(X_tr)    
# y_test_pred = neigh.predict_proba(X_te)

# train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred[:,1])
# test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred[:,1])

# x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
In [237]:
plt.plot(train_fpr, train_tpr, label="train AUC ="+str(auc(train_fpr, train_tpr)))
plt.plot(test_fpr, test_tpr, label="test AUC ="+str(auc(test_fpr, test_tpr)))
plt.plot(x,x)
plt.legend()
plt.xlabel("K: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()

Confusion Matrix

In [238]:
# we are writing our own function for predict, with defined thresould
# we will pick a threshold that will give the least fpr
def predict(proba, threshould, fpr, tpr):
    
    t = threshould[np.argmax(fpr*(1-tpr))]
    
    # (tpr*(1-fpr)) will be maximum if your fpr is very low and tpr is very high
    
    print("the maximum value of tpr*(1-fpr)", max(tpr*(1-fpr)), "for threshold", np.round(t,3))
    predictions = []
    for i in proba:
        if i>=t:
            predictions.append(1)
        else:
            predictions.append(0)
    return predictions
In [239]:
print("Train confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_train,predict(y_train_pred,tr_thresholds,train_fpr,train_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Train confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.769
Out[239]:
<matplotlib.axes._subplots.AxesSubplot at 0x12450b20cc0>
In [240]:
print("Test confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_test,predict(y_test_pred,tr_thresholds,test_fpr,test_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Test confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.801
Out[240]:
<matplotlib.axes._subplots.AxesSubplot at 0x12459b2ac88>

2.4.2 Applying Logistic Regression on TFIDF, SET 2

Creating Data Matrix

In [241]:
# Please write all the code with proper documentation


# merge two sparse matrices: https://stackoverflow.com/a/19710648/4084039
from scipy.sparse import hstack
X_tr = hstack((X_train_essay_tfidf,X_train_title_tfidf, X_train_state_ohe, X_train_teacher_ohe, X_train_grade_ohe,X_train_cat_ohe,X_train_sub_ohe, X_train_price_norm,X_train_project_norm)).tocsr()
X_cr = hstack((X_cv_essay_tfidf,X_cv_title_tfidf, X_cv_state_ohe, X_cv_teacher_ohe, X_cv_grade_ohe,X_cv_cat_ohe,X_cv_sub_ohe, X_cv_price_norm,X_cv_project_norm)).tocsr()
X_te = hstack((X_test_essay_tfidf,X_test_title_tfidf, X_test_state_ohe, X_test_teacher_ohe, X_test_grade_ohe,X_test_cat_ohe,X_test_sub_ohe, X_test_price_norm,X_test_project_norm)).tocsr()

print("Final Data matrix")
print(X_tr.shape, y_train.shape)
print(X_cr.shape, y_cv.shape)
print(X_te.shape, y_test.shape)
print("="*100)
Final Data matrix
(22445, 7072) (22445,)
(11055, 7072) (11055,)
(16500, 7072) (16500,)
====================================================================================================

Hyperparameter Tuning: Simple for loop (if you are having memory limitations use this)

In [242]:
def batch_predict(clf, data):
    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs

    y_data_pred = []
    tr_loop = data.shape[0] - data.shape[0]%1000
    # consider you X_tr shape is 49041, then your cr_loop will be 49041 - 49041%1000 = 49000
    # in this for loop we will iterate unti the last 1000 multiplier
    for i in range(0, tr_loop, 1000):
        y_data_pred.extend(clf.predict_proba(data[i:i+1000])[:,1])
    # we will be predicting for the last data points
    y_data_pred.extend(clf.predict_proba(data[tr_loop:])[:,1])
    
    return y_data_pred
In [243]:
import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
"""
y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of
decisions (as returned by “decision_function” on some classifiers). 
For binary y_true, y_score is supposed to be the score of the class with greater label.

"""

train_auc = []
cv_auc = []
log_alphas=[]
parameters = {'C':[0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1,2.5,5,7.5,10]}

for i in tqdm(parameters['C']):
    neigh = LogisticRegression(C=i)
    neigh.fit(X_tr, y_train)

    y_train_pred = batch_predict(neigh, X_tr)    
    y_cv_pred = batch_predict(neigh, X_cr)

    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs        
    train_auc.append(roc_auc_score(y_train,y_train_pred))
    cv_auc.append(roc_auc_score(y_cv, y_cv_pred))
100%|██████████████████████████████████████████████████████████████████████████████████| 13/13 [00:45<00:00,  6.96s/it]
In [244]:
for a in tqdm(parameters['C']):
    b = math.log10(a)
    log_alphas.append(b)
print(log_alphas)
100%|██████████████████████████████████████████████████████████████████████████████████████████| 13/13 [00:00<?, ?it/s]
[-4.0, -3.3010299956639813, -3.0, -2.3010299956639813, -2.0, -1.3010299956639813, -1.0, -0.3010299956639812, 0.0, 0.3979400086720376, 0.6989700043360189, 0.8750612633917001, 1.0]
In [245]:
plt.figure(figsize=(20,15))
plt.plot(log_alphas, train_auc, label='Train AUC')
plt.plot(log_alphas, cv_auc, label='CV AUC')

plt.scatter(log_alphas, train_auc, label='Train AUC points')
plt.scatter(log_alphas, cv_auc, label='CV AUC points')

plt.legend()
plt.xlabel("C: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()
In [246]:
best_k=0.30

Train The Model

In [247]:
from sklearn.metrics import roc_curve, auc

neigh = LogisticRegression(C=best_k)
neigh.fit(X_tr, y_train)
# roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# not the predicted outputs

y_train_pred = batch_predict(neigh, X_tr)    
y_test_pred = batch_predict(neigh, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)

x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
In [248]:
plt.plot(train_fpr, train_tpr, label="train AUC ="+str(auc(train_fpr, train_tpr)))
plt.plot(test_fpr, test_tpr, label="test AUC ="+str(auc(test_fpr, test_tpr)))
plt.plot(x,x)
plt.legend()
plt.xlabel("K: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()

Confusion Matrix

In [249]:
# we are writing our own function for predict, with defined thresould
# we will pick a threshold that will give the least fpr
def predict(proba, threshould, fpr, tpr):
    
    t = threshould[np.argmax(fpr*(1-tpr))]
    
    # (tpr*(1-fpr)) will be maximum if your fpr is very low and tpr is very high
    
    print("the maximum value of tpr*(1-fpr)", max(tpr*(1-fpr)), "for threshold", np.round(t,3))
    predictions = []
    for i in proba:
        if i>=t:
            predictions.append(1)
        else:
            predictions.append(0)
    return predictions
In [250]:
print("Train confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_train,predict(y_train_pred,tr_thresholds,train_fpr,train_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Train confusion matrix
the maximum value of tpr*(1-fpr) 0.24999991339294902 for threshold 0.771
Out[250]:
<matplotlib.axes._subplots.AxesSubplot at 0x124538d4dd8>
In [251]:
print("Test confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_test,predict(y_test_pred,tr_thresholds,test_fpr,test_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Test confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.806
Out[251]:
<matplotlib.axes._subplots.AxesSubplot at 0x1245a7cd550>

2.4.3 Applying Logistic Regression on AVG W2V, SET 3

Creating Data Matrix

In [252]:
# Please write all the code with proper documentation

# merge two sparse matrices: https://stackoverflow.com/a/19710648/4084039
from scipy.sparse import hstack
X_tr = hstack((avg_w2v_essay_train,avg_w2v_title_train, X_train_state_ohe, X_train_teacher_ohe, X_train_grade_ohe,X_train_cat_ohe,X_train_sub_ohe, X_train_price_norm,X_train_project_norm)).tocsr()
X_cr = hstack((avg_w2v_essay_cv,avg_w2v_title_cv, X_cv_state_ohe, X_cv_teacher_ohe, X_cv_grade_ohe,X_cv_cat_ohe,X_cv_sub_ohe, X_cv_price_norm,X_cv_project_norm)).tocsr()
X_te = hstack((avg_w2v_essay_test,avg_w2v_title_test, X_test_state_ohe, X_test_teacher_ohe, X_test_grade_ohe,X_test_cat_ohe,X_test_sub_ohe, X_test_price_norm,X_test_project_norm)).tocsr()

print("Final Data matrix")
print(X_tr.shape, y_train.shape)
print(X_cr.shape, y_cv.shape)
print(X_te.shape, y_test.shape)
print("="*100)
Final Data matrix
(22445, 701) (22445,)
(11055, 701) (11055,)
(16500, 701) (16500,)
====================================================================================================

Hyperparameter Tuning: Simple for loop (if you are having memory limitations use this)

In [253]:
def batch_predict(clf, data):
    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs

    y_data_pred = []
    tr_loop = data.shape[0] - data.shape[0]%1000
    # consider you X_tr shape is 49041, then your cr_loop will be 49041 - 49041%1000 = 49000
    # in this for loop we will iterate unti the last 1000 multiplier
    for i in range(0, tr_loop, 1000):
        y_data_pred.extend(clf.predict_proba(data[i:i+1000])[:,1])
    # we will be predicting for the last data points
    y_data_pred.extend(clf.predict_proba(data[tr_loop:])[:,1])
    
    return y_data_pred
In [254]:
import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
"""
y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of
decisions (as returned by “decision_function” on some classifiers). 
For binary y_true, y_score is supposed to be the score of the class with greater label.

"""

train_auc = []
cv_auc = []
log_alphas=[]
parameters = {'C':[0.01,0.05,0.1,0.5,1,5,10,50,100,500,1000,5000,10000,50000]}

for i in tqdm(parameters['C']):
    neigh = LogisticRegression(C=i)
    neigh.fit(X_tr, y_train)

    y_train_pred = batch_predict(neigh, X_tr)    
    y_cv_pred = batch_predict(neigh, X_cr)

    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs        
    train_auc.append(roc_auc_score(y_train,y_train_pred))
    cv_auc.append(roc_auc_score(y_cv, y_cv_pred))
100%|██████████████████████████████████████████████████████████████████████████████████| 14/14 [08:14<00:00, 54.56s/it]
In [257]:
for a in tqdm(parameters['C']):
    b = math.log10(a)
    log_alphas.append(b)
print(log_alphas)
100%|████████████████████████████████████████████████████████████████████████████████| 14/14 [00:00<00:00, 9056.18it/s]
[-2.0, -1.3010299956639813, -1.0, -0.3010299956639812, 0.0, 0.6989700043360189, 1.0, 1.6989700043360187, 2.0, 2.6989700043360187, 3.0, 3.6989700043360187, 4.0, 4.698970004336019]
In [258]:
plt.figure(figsize=(20,15))
plt.plot(log_alphas, train_auc, label='Train AUC')
plt.plot(log_alphas, cv_auc, label='CV AUC')

plt.scatter(log_alphas, train_auc, label='Train AUC points')
plt.scatter(log_alphas, cv_auc, label='CV AUC points')

plt.legend()
plt.xlabel("C: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()
In [259]:
best_k=1

Train The Model

In [260]:
from sklearn.metrics import roc_curve, auc

neigh = LogisticRegression(C=best_k)
neigh.fit(X_tr, y_train)
# roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# not the predicted outputs

y_train_pred = batch_predict(neigh, X_tr)    
y_test_pred = batch_predict(neigh, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)
In [261]:
x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
plt.plot(train_fpr, train_tpr, label="train AUC ="+str(auc(train_fpr, train_tpr)))
plt.plot(test_fpr, test_tpr, label="train AUC ="+str(auc(test_fpr, test_tpr)))
plt.plot(x,x)
plt.legend()
plt.xlabel("K: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()

Confusion Matrix

In [262]:
# we are writing our own function for predict, with defined thresould
# we will pick a threshold that will give the least fpr
def predict(proba, threshould, fpr, tpr):
    
    t = threshould[np.argmax(fpr*(1-tpr))]
    
    # (tpr*(1-fpr)) will be maximum if your fpr is very low and tpr is very high
    
    print("the maximum value of tpr*(1-fpr)", max(tpr*(1-fpr)), "for threshold", np.round(t,3))
    predictions = []
    for i in proba:
        if i>=t:
            predictions.append(1)
        else:
            predictions.append(0)
    return predictions
In [263]:
print("Train confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_train,predict(y_train_pred,tr_thresholds,train_fpr,train_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Train confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.799
Out[263]:
<matplotlib.axes._subplots.AxesSubplot at 0x124542e4630>
In [264]:
print("Test confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_test,predict(y_test_pred,tr_thresholds,test_fpr,test_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Test confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.837
Out[264]:
<matplotlib.axes._subplots.AxesSubplot at 0x12459b06c50>

2.4.4 Applying Logistic Regression on TFIDF W2V, SET 4

Creating Data Matrix

In [265]:
# Please write all the code with proper documentation

# merge two sparse matrices: https://stackoverflow.com/a/19710648/4084039
from scipy.sparse import hstack
X_tr = hstack((tfidf_w2v_train_essay,tfidf_w2v_train_title, X_train_state_ohe, X_train_teacher_ohe, X_train_grade_ohe,X_train_cat_ohe,X_train_sub_ohe, X_train_price_norm,X_train_project_norm)).tocsr()
X_cr = hstack((tfidf_w2v_cv_essay,tfidf_w2v_cv_title, X_cv_state_ohe, X_cv_teacher_ohe, X_cv_grade_ohe,X_cv_cat_ohe,X_cv_sub_ohe, X_cv_price_norm,X_cv_project_norm)).tocsr()
X_te = hstack((tfidf_w2v_test_essay,tfidf_w2v_test_title, X_test_state_ohe, X_test_teacher_ohe, X_test_grade_ohe,X_test_cat_ohe,X_test_sub_ohe, X_test_price_norm,X_test_project_norm)).tocsr()

print("Final Data matrix")
print(X_tr.shape, y_train.shape)
print(X_cr.shape, y_cv.shape)
print(X_te.shape, y_test.shape)
print("="*100)
Final Data matrix
(22445, 701) (22445,)
(11055, 701) (11055,)
(16500, 701) (16500,)
====================================================================================================

Hyperparameter Tuning: Simple for loop (if you are having memory limitations use this)

In [266]:
def batch_predict(clf, data):
    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs

    y_data_pred = []
    tr_loop = data.shape[0] - data.shape[0]%1000
    # consider you X_tr shape is 49041, then your cr_loop will be 49041 - 49041%1000 = 49000
    # in this for loop we will iterate unti the last 1000 multiplier
    for i in range(0, tr_loop, 1000):
        y_data_pred.extend(clf.predict_proba(data[i:i+1000])[:,1])
    # we will be predicting for the last data points
    y_data_pred.extend(clf.predict_proba(data[tr_loop:])[:,1])
    
    return y_data_pred
In [267]:
import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
"""
y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of
decisions (as returned by “decision_function” on some classifiers). 
For binary y_true, y_score is supposed to be the score of the class with greater label.

"""

train_auc = []
cv_auc = []
log_alphas=[]
parameters = {'C':[0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1,2.5,5,10,50,100,500]}

for i in tqdm(parameters['C']):
    neigh = LogisticRegression(C=i)
    neigh.fit(X_tr, y_train)

    y_train_pred = batch_predict(neigh, X_tr)    
    y_cv_pred = batch_predict(neigh, X_cr)

    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs        
    train_auc.append(roc_auc_score(y_train,y_train_pred))
    cv_auc.append(roc_auc_score(y_cv, y_cv_pred))
100%|██████████████████████████████████████████████████████████████████████████████████| 15/15 [04:58<00:00, 42.21s/it]
In [268]:
for a in tqdm(parameters['C']):
    b = math.log10(a)
    log_alphas.append(b)
print(log_alphas)
100%|██████████████████████████████████████████████████████████████████████████████████████████| 15/15 [00:00<?, ?it/s]
[-4.0, -3.3010299956639813, -3.0, -2.3010299956639813, -2.0, -1.3010299956639813, -1.0, -0.3010299956639812, 0.0, 0.3979400086720376, 0.6989700043360189, 1.0, 1.6989700043360187, 2.0, 2.6989700043360187]
In [269]:
plt.figure(figsize=(20,15))
plt.plot(log_alphas, train_auc, label='Train AUC')
plt.plot(log_alphas, cv_auc, label='CV AUC')

plt.scatter(log_alphas, train_auc, label='Train AUC points')
plt.scatter(log_alphas, cv_auc, label='CV AUC points')

plt.legend()
plt.xlabel("C: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()
In [270]:
best_k=0.1

Train The Model

In [271]:
from sklearn.metrics import roc_curve, auc

neigh = LogisticRegression(C=best_k)
neigh.fit(X_tr, y_train)
# roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# not the predicted outputs

y_train_pred = batch_predict(neigh, X_tr)    
y_test_pred = batch_predict(neigh, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)
In [272]:
x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
plt.plot(train_fpr, train_tpr, label="train AUC ="+str(auc(train_fpr, train_tpr)))
plt.plot(test_fpr, test_tpr, label="train AUC ="+str(auc(test_fpr, test_tpr)))
plt.plot(x,x)
plt.legend()
plt.xlabel("K: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()

Confusion Matrix

In [273]:
# we are writing our own function for predict, with defined thresould
# we will pick a threshold that will give the least fpr
def predict(proba, threshould, fpr, tpr):
    
    t = threshould[np.argmax(fpr*(1-tpr))]
    
    # (tpr*(1-fpr)) will be maximum if your fpr is very low and tpr is very high
    
    print("the maximum value of tpr*(1-fpr)", max(tpr*(1-fpr)), "for threshold", np.round(t,3))
    predictions = []
    for i in proba:
        if i>=t:
            predictions.append(1)
        else:
            predictions.append(0)
    return predictions
In [274]:
print("Train confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_train,predict(y_train_pred,tr_thresholds,train_fpr,train_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Train confusion matrix
the maximum value of tpr*(1-fpr) 0.24999991339294902 for threshold 0.814
Out[274]:
<matplotlib.axes._subplots.AxesSubplot at 0x1245a717320>
In [275]:
print("Test confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_test,predict(y_test_pred,tr_thresholds,test_fpr,test_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Test confusion matrix
the maximum value of tpr*(1-fpr) 0.25 for threshold 0.841
Out[275]:
<matplotlib.axes._subplots.AxesSubplot at 0x12458028828>

2.5 Logistic Regression with added Features, SET 5

Creating Data Matrix

In [276]:
X_tr = hstack((X_train_state_ohe, X_train_teacher_ohe, X_train_grade_ohe,X_train_cat_ohe,X_train_sub_ohe, X_train_price_norm,X_train_project_norm,X_train_title_norm,X_train_essay_norm,essay_sent_pos_train,essay_sent_neg_train,essay_sent_neu_train,essay_sent_comp_train)).tocsr()
X_cr = hstack((X_cv_state_ohe, X_cv_teacher_ohe, X_cv_grade_ohe,X_cv_cat_ohe,X_cv_sub_ohe, X_cv_price_norm,X_cv_project_norm,X_cv_title_norm,X_cv_essay_norm,essay_sent_pos_cv,essay_sent_neg_cv,essay_sent_neu_cv,essay_sent_comp_cv)).tocsr()
X_te = hstack((X_test_state_ohe, X_test_teacher_ohe, X_test_grade_ohe,X_test_cat_ohe,X_test_sub_ohe, X_test_price_norm,X_test_project_norm,X_test_title_norm,X_test_essay_norm,essay_sent_pos_test,essay_sent_neg_test,essay_sent_neu_test,essay_sent_comp_test)).tocsr()

print("Final Data matrix")
print(X_tr.shape, y_train.shape)
print(X_cr.shape, y_cv.shape)
print(X_te.shape, y_test.shape)
print("="*100)
Final Data matrix
(22445, 107) (22445,)
(11055, 107) (11055,)
(16500, 107) (16500,)
====================================================================================================

Hyperparameter Tuning: Simple for loop (if you are having memory limitations use this)

In [277]:
def batch_predict(clf, data):
    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs

    y_data_pred = []
    tr_loop = data.shape[0] - data.shape[0]%1000
    # consider you X_tr shape is 49041, then your cr_loop will be 49041 - 49041%1000 = 49000
    # in this for loop we will iterate unti the last 1000 multiplier
    for i in range(0, tr_loop, 1000):
        y_data_pred.extend(clf.predict_proba(data[i:i+1000])[:,1])
    # we will be predicting for the last data points
    y_data_pred.extend(clf.predict_proba(data[tr_loop:])[:,1])
    
    return y_data_pred
In [278]:
import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
"""
y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of
decisions (as returned by “decision_function” on some classifiers). 
For binary y_true, y_score is supposed to be the score of the class with greater label.

"""

train_auc = []
cv_auc = []
log_alphas=[]

parameters = {'C':[0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1,2.5,5]}

for i in tqdm(parameters['C']):
    neigh = LogisticRegression(C=i)
    neigh.fit(X_tr, y_train)

    y_train_pred = batch_predict(neigh, X_tr)    
    y_cv_pred = batch_predict(neigh, X_cr)

    # roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
    # not the predicted outputs        
    train_auc.append(roc_auc_score(y_train,y_train_pred))
    cv_auc.append(roc_auc_score(y_cv, y_cv_pred))
100%|██████████████████████████████████████████████████████████████████████████████████| 11/11 [00:05<00:00,  1.70it/s]
In [279]:
import math 
for a in tqdm(parameters['C']):
    b = math.log10(a)
    log_alphas.append(b)
print(log_alphas)
100%|██████████████████████████████████████████████████████████████████████████████████████████| 11/11 [00:00<?, ?it/s]
[-4.0, -3.3010299956639813, -3.0, -2.3010299956639813, -2.0, -1.3010299956639813, -1.0, -0.3010299956639812, 0.0, 0.3979400086720376, 0.6989700043360189]
In [280]:
plt.figure(figsize=(20,15))
plt.plot(log_alphas, train_auc, label='Train AUC')
plt.plot(log_alphas, cv_auc, label='CV AUC')

plt.scatter(log_alphas, train_auc, label='Train AUC points')
plt.scatter(log_alphas, cv_auc, label='CV AUC points')

plt.legend()
plt.xlabel("C: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()
In [281]:
best_k=0.01

Train The Model

In [282]:
from sklearn.metrics import roc_curve, auc

neigh = LogisticRegression(C=best_k)
neigh.fit(X_tr, y_train)
# roc_auc_score(y_true, y_score) the 2nd parameter should be probability estimates of the positive class
# not the predicted outputs

y_train_pred = batch_predict(neigh, X_tr)    
y_test_pred = batch_predict(neigh, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)
In [283]:
x=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
plt.plot(train_fpr, train_tpr, label="train AUC ="+str(auc(train_fpr, train_tpr)))
plt.plot(test_fpr, test_tpr, label="train AUC ="+str(auc(test_fpr, test_tpr)))
plt.plot(x,x)
plt.legend()
plt.xlabel("K: hyperparameter")
plt.ylabel("AUC")
plt.title("ERROR PLOTS")
plt.grid()
plt.show()

Confusion Matrix

In [284]:
# we are writing our own function for predict, with defined thresould
# we will pick a threshold that will give the least fpr
def predict(proba, threshould, fpr, tpr):
    
    t = threshould[np.argmax(fpr*(1-tpr))]
    
    # (tpr*(1-fpr)) will be maximum if your fpr is very low and tpr is very high
    
    print("the maximum value of tpr*(1-fpr)", max(tpr*(1-fpr)), "for threshold", np.round(t,3))
    predictions = []
    for i in proba:
        if i>=t:
            predictions.append(1)
        else:
            predictions.append(0)
    return predictions
In [285]:
print("Train confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_train,predict(y_train_pred,tr_thresholds,train_fpr,train_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Train confusion matrix
the maximum value of tpr*(1-fpr) 0.24999991339294902 for threshold 0.843
Out[285]:
<matplotlib.axes._subplots.AxesSubplot at 0x124439d39e8>
In [286]:
print("Test confusion matrix")
conf_matr_df_train_2=pd.DataFrame(confusion_matrix(y_test,predict(y_test_pred,tr_thresholds,test_fpr,test_fpr)),range(2),range(2))
sns.set(font_scale=1)#for label size
sns.heatmap(conf_matr_df_train_2,annot=True,annot_kws={"size":30},fmt='g')
Test confusion matrix
the maximum value of tpr*(1-fpr) 0.24999983974369247 for threshold 0.853
Out[286]:
<matplotlib.axes._subplots.AxesSubplot at 0x1245be29dd8>

3. Conclusion

In [288]:
# Please compare all your mod# http://zetcode.com/python/prettytable/

from prettytable import PrettyTable
#If you get a ModuleNotFoundError error , install prettytable using: pip3 install prettytable
x=PrettyTable()
x.field_names=["Vectorizer","Hyper Parameter","AUC"]
x.add_row(["BOW",0.01,0.66])
x.add_row(["TFIDF",0.32,0.65])
x.add_row(["AVG W2V",1,0.69])
x.add_row(["TFIDF W2V",0.1,0.68])
x.add_row(["WITHOUT TEXT",0.01,0.57])
print(x)
+--------------+-----------------+------+
|  Vectorizer  | Hyper Parameter | AUC  |
+--------------+-----------------+------+
|     BOW      |       0.01      | 0.66 |
|    TFIDF     |       0.32      | 0.65 |
|   AVG W2V    |        1        | 0.69 |
|  TFIDF W2V   |       0.1       | 0.68 |
| WITHOUT TEXT |       0.01      | 0.57 |
+--------------+-----------------+------+

INFERENCE:

Here we can be observed that "Essays" and "Project Titles" play a major role in predicting the outcome of the project. So,we should not neglect them as the top four models containing them proved to have a better AUC score.

In [ ]: